From bdfbf790ec08595b58c4192fa5408c6400f7bc3a Mon Sep 17 00:00:00 2001 From: Danilo Reyes Date: Sat, 11 May 2024 21:54:31 -0600 Subject: [PATCH] failing: scripts/base needs to be unique --- hosts/workstation/configuration.nix | 6 +++-- modules/scripts.nix | 7 +++-- modules/scripts/base.nix | 41 ++++++++++++++++------------- modules/scripts/run.nix | 11 ++++++++ modules/scripts/tasks.nix | 6 +++-- 5 files changed, 47 insertions(+), 24 deletions(-) create mode 100644 modules/scripts/run.nix diff --git a/hosts/workstation/configuration.nix b/hosts/workstation/configuration.nix index 178808c..6fae2be 100644 --- a/hosts/workstation/configuration.nix +++ b/hosts/workstation/configuration.nix @@ -43,7 +43,10 @@ in { printing.enable = true; sound.enable = true; }; - scripts = { tasks.enable = true; }; + scripts = { + tasks.enable = true; + run.enable = true; + }; }; networking = { @@ -113,7 +116,6 @@ in { (builtins.readFile ../../scripts/ffmpreg.sh)) (writeScriptBin "split-dir" (builtins.readFile ../../scripts/split-dir.sh)) - (writeScriptBin "run" (builtins.readFile ../../scripts/run.sh)) (writeScriptBin "pika-list" (builtins.readFile ../../scripts/pika-list.sh)) diff --git a/modules/scripts.nix b/modules/scripts.nix index f2028ff..788792e 100644 --- a/modules/scripts.nix +++ b/modules/scripts.nix @@ -1,4 +1,7 @@ { config, lib, pkgs, ... }: { - imports = [ ./scripts/tasks.nix ]; - my.scripts.tasks.enable = lib.mkDefault false; + imports = [ ./scripts/tasks.nix ./scripts/run.nix ]; + my.scripts = { + tasks.enable = lib.mkDefault false; + run.enable = lib.mkDefault false; + }; } diff --git a/modules/scripts/base.nix b/modules/scripts/base.nix index ddd0bc1..d2d98a4 100644 --- a/modules/scripts/base.nix +++ b/modules/scripts/base.nix @@ -1,5 +1,7 @@ { config, lib, pkgs, ... }: { options.my.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; default = "my-script"; @@ -22,25 +24,28 @@ }; }; config = { - users.users.jawz.packages = [ config.my.script.package ]; - systemd.user = with config.my.script; { - services."${name}" = { - restartIfChanged = true; - description = description; - wantedBy = [ "default.target" ]; - path = [ pkgs.nix package ]; - serviceConfig = { - Restart = "on-failure"; - RestartSec = 30; - ExecStart = "${package}/bin/${name}"; + users.users.jawz = lib.mkIf config.my.script.install { + packages = [ config.my.script.package ]; + }; + systemd.user = with config.my.script; + lib.mkIf config.my.script.service { + services."${name}" = { + restartIfChanged = true; + description = description; + wantedBy = [ "default.target" ]; + path = [ pkgs.nix package ]; + serviceConfig = { + Restart = "on-failure"; + RestartSec = 30; + ExecStart = "${package}/bin/${name}"; + }; + }; + timers."${name}" = { + enable = true; + description = description; + wantedBy = [ "timers.target" ]; + timerConfig = { OnCalendar = timer; }; }; }; - timers."${name}" = { - enable = true; - description = description; - wantedBy = [ "timers.target" ]; - timerConfig = { OnCalendar = timer; }; - }; - }; }; } diff --git a/modules/scripts/run.nix b/modules/scripts/run.nix new file mode 100644 index 0000000..99fb702 --- /dev/null +++ b/modules/scripts/run.nix @@ -0,0 +1,11 @@ +{ config, lib, pkgs, ... }: { + imports = [ ./base.nix ]; + options.my.scripts.run.enable = lib.mkEnableOption "enable"; + config = lib.mkIf config.my.scripts.run.enable { + my.script = { + install = true; + package = + pkgs.writeScriptBin "run" (builtins.readFile ../../scripts/run.sh); + }; + }; +} diff --git a/modules/scripts/tasks.nix b/modules/scripts/tasks.nix index fe67830..cc2b2a7 100644 --- a/modules/scripts/tasks.nix +++ b/modules/scripts/tasks.nix @@ -3,11 +3,13 @@ options.my.scripts.tasks.enable = lib.mkEnableOption "enable"; config = lib.mkIf config.my.scripts.tasks.enable { my.script = { + install = true; + service = true; name = "tasks"; timer = "*:0/10"; description = "runs a bunch of organizing tasks on selected directories"; - package = (pkgs.writeScriptBin "tasks" - (builtins.readFile ../../scripts/tasks.sh)); + package = + pkgs.writeScriptBin "tasks" (builtins.readFile ../../scripts/tasks.sh); }; }; }