From 8664061145d7be3d62a2f6c4be9a895dde03ece9 Mon Sep 17 00:00:00 2001 From: Danilo Reyes Date: Sun, 12 Oct 2025 14:12:19 -0600 Subject: [PATCH] further figration --- modules/modules.nix | 1 + modules/scripts/download.nix | 1 - modules/scripts/ffmpeg4discord.nix | 1 - modules/scripts/ffmpreg.nix | 1 - modules/scripts/find-dup-episode.nix | 1 - modules/scripts/library-report.nix | 1 - modules/scripts/manage-library.nix | 1 - modules/scripts/pika-list.nix | 1 - modules/scripts/run.nix | 1 - modules/scripts/split-dir.nix | 1 - modules/scripts/stream-dl.nix | 1 - modules/scripts/tasks.nix | 1 - modules/scripts/tuh-activity-logger.nix | 1 - modules/scripts/update-dns.nix | 1 - modules/scripts/update-org-agenda-cache.nix | 1 - modules/servers/homepage.nix | 6 +----- modules/shell/multimedia.nix | 3 ++- parts/core.nix | 23 +++++++++++++++++++++ 18 files changed, 27 insertions(+), 20 deletions(-) diff --git a/modules/modules.nix b/modules/modules.nix index 2a7b1e4..6cc2010 100644 --- a/modules/modules.nix +++ b/modules/modules.nix @@ -17,6 +17,7 @@ in ++ inputs.self.lib.autoImport ./shell filterNames ++ inputs.self.lib.autoImport ./network filterNames ++ [ + ./factories/mkscript.nix ./nix/build.nix ./users/nixremote.nix ]; diff --git a/modules/scripts/download.nix b/modules/scripts/download.nix index 93ad2f8..4c4b7b4 100644 --- a/modules/scripts/download.nix +++ b/modules/scripts/download.nix @@ -6,7 +6,6 @@ ... }: { - imports = [ ../factories/mkscript.nix ]; options.my.units = { download.enable = lib.mkEnableOption "media download automation scripts"; downloadManga.enable = lib.mkEnableOption "manga download automation"; diff --git a/modules/scripts/ffmpeg4discord.nix b/modules/scripts/ffmpeg4discord.nix index 735934f..abcf000 100644 --- a/modules/scripts/ffmpeg4discord.nix +++ b/modules/scripts/ffmpeg4discord.nix @@ -1,6 +1,5 @@ { inputs, lib, ... }: { - imports = [ ../factories/mkscript.nix ]; config.my.scripts.ffmpeg4discord = { enable = lib.mkDefault false; install = true; diff --git a/modules/scripts/ffmpreg.nix b/modules/scripts/ffmpreg.nix index ce7f918..53dc280 100644 --- a/modules/scripts/ffmpreg.nix +++ b/modules/scripts/ffmpreg.nix @@ -1,6 +1,5 @@ { inputs, lib, ... }: { - imports = [ ../factories/mkscript.nix ]; config.my.scripts.ffmpreg = { enable = lib.mkDefault false; install = true; diff --git a/modules/scripts/find-dup-episode.nix b/modules/scripts/find-dup-episode.nix index 9f02e84..ae11a00 100644 --- a/modules/scripts/find-dup-episode.nix +++ b/modules/scripts/find-dup-episode.nix @@ -1,6 +1,5 @@ { inputs, lib, ... }: { - imports = [ ../factories/mkscript.nix ]; config.my.scripts.find-dup-episodes = { enable = lib.mkDefault false; install = true; diff --git a/modules/scripts/library-report.nix b/modules/scripts/library-report.nix index fbbe1d2..d9a6726 100644 --- a/modules/scripts/library-report.nix +++ b/modules/scripts/library-report.nix @@ -1,6 +1,5 @@ { inputs, lib, ... }: { - imports = [ ../factories/mkscript.nix ]; config.my.scripts.library-report = { enable = lib.mkDefault false; install = true; diff --git a/modules/scripts/manage-library.nix b/modules/scripts/manage-library.nix index 0be7a47..b479330 100644 --- a/modules/scripts/manage-library.nix +++ b/modules/scripts/manage-library.nix @@ -1,6 +1,5 @@ { inputs, lib, ... }: { - imports = [ ../factories/mkscript.nix ]; config.my.scripts.manage-library = { enable = lib.mkDefault false; install = true; diff --git a/modules/scripts/pika-list.nix b/modules/scripts/pika-list.nix index 804bb13..8ed8da2 100644 --- a/modules/scripts/pika-list.nix +++ b/modules/scripts/pika-list.nix @@ -1,6 +1,5 @@ { inputs, lib, ... }: { - imports = [ ../factories/mkscript.nix ]; config.my.scripts.pika-list = { enable = lib.mkDefault false; install = true; diff --git a/modules/scripts/run.nix b/modules/scripts/run.nix index 5effd53..6176547 100644 --- a/modules/scripts/run.nix +++ b/modules/scripts/run.nix @@ -1,6 +1,5 @@ { inputs, lib, ... }: { - imports = [ ../factories/mkscript.nix ]; config.my.scripts.run = { enable = lib.mkDefault false; install = true; diff --git a/modules/scripts/split-dir.nix b/modules/scripts/split-dir.nix index c65bed2..9a09268 100644 --- a/modules/scripts/split-dir.nix +++ b/modules/scripts/split-dir.nix @@ -1,6 +1,5 @@ { inputs, lib, ... }: { - imports = [ ../factories/mkscript.nix ]; config.my.scripts.split-dir = { enable = lib.mkDefault false; install = true; diff --git a/modules/scripts/stream-dl.nix b/modules/scripts/stream-dl.nix index c9ef465..1a2b2f6 100644 --- a/modules/scripts/stream-dl.nix +++ b/modules/scripts/stream-dl.nix @@ -6,7 +6,6 @@ ... }: { - imports = [ ../factories/mkscript.nix ]; options.my.units.stream-dl.enable = lib.mkEnableOption "streaming media download service"; config = let diff --git a/modules/scripts/tasks.nix b/modules/scripts/tasks.nix index 1d6c60f..4659553 100644 --- a/modules/scripts/tasks.nix +++ b/modules/scripts/tasks.nix @@ -1,6 +1,5 @@ { inputs, lib, ... }: { - imports = [ ../factories/mkscript.nix ]; config.my.scripts.tasks = { enable = lib.mkDefault false; install = true; diff --git a/modules/scripts/tuh-activity-logger.nix b/modules/scripts/tuh-activity-logger.nix index b0038d4..b75a0b2 100644 --- a/modules/scripts/tuh-activity-logger.nix +++ b/modules/scripts/tuh-activity-logger.nix @@ -1,6 +1,5 @@ { inputs, lib, ... }: { - imports = [ ../factories/mkscript.nix ]; config.my.scripts.tuh-activity-logger = { enable = lib.mkDefault false; install = true; diff --git a/modules/scripts/update-dns.nix b/modules/scripts/update-dns.nix index 8b3ae29..4039259 100644 --- a/modules/scripts/update-dns.nix +++ b/modules/scripts/update-dns.nix @@ -6,7 +6,6 @@ ... }: { - imports = [ ../factories/mkscript.nix ]; config = lib.mkIf config.my.secureHost { sops.secrets = { cloudflare-api.sopsFile = ../../secrets/env.yaml; diff --git a/modules/scripts/update-org-agenda-cache.nix b/modules/scripts/update-org-agenda-cache.nix index c9ceb58..ef6b814 100644 --- a/modules/scripts/update-org-agenda-cache.nix +++ b/modules/scripts/update-org-agenda-cache.nix @@ -5,7 +5,6 @@ ... }: { - imports = [ ../factories/mkscript.nix ]; config.my.scripts.update-org-agenda-cache = { enable = lib.mkDefault false; install = config.my.emacs.enable; diff --git a/modules/servers/homepage.nix b/modules/servers/homepage.nix index 1761dba..f35fc72 100644 --- a/modules/servers/homepage.nix +++ b/modules/servers/homepage.nix @@ -29,11 +29,7 @@ in }; widgets = import ./homepage/widgets.nix; services = import ./homepage/services.nix { inherit lib config; }; - bookmarks = - builtins.readDir ./homepage/bookmarks - |> builtins.attrNames - |> builtins.filter (file: builtins.match ".*\\.nix" file != null) - |> map (file: import ./homepage/bookmarks/${file}); + bookmarks = inputs.self.lib.autoImport ./homepage/bookmarks (_: true) |> map import; }; }; } diff --git a/modules/shell/multimedia.nix b/modules/shell/multimedia.nix index 3407c68..ac52a3d 100644 --- a/modules/shell/multimedia.nix +++ b/modules/shell/multimedia.nix @@ -1,5 +1,6 @@ { config, + inputs, lib, pkgs, ... @@ -24,7 +25,7 @@ }; gallery-dl = { enable = true; - settings = import ../../dotfiles/gallery-dl.nix; + settings = inputs.self.lib.importDotfile ../../dotfiles/gallery-dl.nix; }; ${config.my.shell.type} = { initExtra = lib.mkAfter '' diff --git a/parts/core.nix b/parts/core.nix index 7989fad..d669d4b 100644 --- a/parts/core.nix +++ b/parts/core.nix @@ -196,6 +196,29 @@ in shellType: bashContent: zshContent: if shellType == "bash" then { initExtra = bashContent; } else { initContent = zshContent; }; mergeAliases = baseAliases: extraAliases: baseAliases // extraAliases; + importDotfile = path: import path; + mkScriptOptions = lib: { + enable = lib.mkEnableOption "Whether to enable this script"; + install = lib.mkEnableOption "Whether to install the script package"; + service = lib.mkEnableOption "Whether to enable the script service"; + name = lib.mkOption { + type = lib.types.str; + description = "Name of the script."; + }; + timer = lib.mkOption { + type = lib.types.str; + default = "*:0"; + description = "Systemd timer schedule."; + }; + description = lib.mkOption { + type = lib.types.str; + description = "Description of the service."; + }; + package = lib.mkOption { + type = lib.types.package; + description = "Package containing the executable script."; + }; + }; getServicesWithNativeFirewall = config: blacklist: config.my.servers