diff options
Diffstat (limited to 'modules/zfssnap/default.nix')
-rw-r--r-- | modules/zfssnap/default.nix | 42 |
1 files changed, 17 insertions, 25 deletions
diff --git a/modules/zfssnap/default.nix b/modules/zfssnap/default.nix index 42cdf46f..735e73ec 100644 --- a/modules/zfssnap/default.nix +++ b/modules/zfssnap/default.nix | |||
@@ -1,32 +1,20 @@ | |||
1 | { config, pkgs, lib, ... }: | 1 | { config, pkgs, lib, flakeInputs, ... }: |
2 | 2 | ||
3 | with lib; | 3 | with lib; |
4 | 4 | ||
5 | let | 5 | let |
6 | zfssnap = pkgs.stdenv.mkDerivation rec { | 6 | zfssnap = flakeInputs.mach-nix.lib.${config.nixpkgs.system}.buildPythonPackage rec { |
7 | name = "zfssnap"; | 7 | pname = "zfssnap"; |
8 | src = ./zfssnap.py; | 8 | src = ./zfssnap; |
9 | version = "0.0.0"; | ||
10 | ignoreDataOutdated = true; | ||
9 | 11 | ||
10 | phases = [ "buildPhase" "checkPhase" "installPhase" ]; | 12 | requirements = '' |
11 | 13 | pyxdg | |
12 | buildInputs = with pkgs; [makeWrapper]; | 14 | pytimeparse |
13 | 15 | python-dateutil | |
14 | python = pkgs.python39.withPackages (ps: with ps; [pyxdg pytimeparse python-dateutil]); | ||
15 | |||
16 | buildPhase = '' | ||
17 | substitute $src zfssnap \ | ||
18 | --subst-var-by python ${escapeShellArg python} | ||
19 | ''; | ||
20 | |||
21 | doCheck = true; | ||
22 | checkPhase = '' | ||
23 | ${python}/bin/python -m py_compile zfssnap | ||
24 | ''; | 16 | ''; |
25 | 17 | postInstall = '' | |
26 | installPhase = '' | ||
27 | install -m 0755 -D -t $out/bin \ | ||
28 | zfssnap | ||
29 | |||
30 | wrapProgram $out/bin/zfssnap \ | 18 | wrapProgram $out/bin/zfssnap \ |
31 | --prefix PATH : ${makeBinPath [config.boot.zfs.package]} | 19 | --prefix PATH : ${makeBinPath [config.boot.zfs.package]} |
32 | ''; | 20 | ''; |
@@ -71,7 +59,9 @@ in { | |||
71 | before = [ "zfssnap-prune.service" ]; | 59 | before = [ "zfssnap-prune.service" ]; |
72 | serviceConfig = { | 60 | serviceConfig = { |
73 | Type = "oneshot"; | 61 | Type = "oneshot"; |
74 | ExecStart = "${zfssnap}/bin/zfssnap -v"; | 62 | ExecStart = "${zfssnap}/bin/zfssnap -vv"; |
63 | |||
64 | LogRateLimitIntervalSec = 0; | ||
75 | }; | 65 | }; |
76 | }; | 66 | }; |
77 | systemd.services."zfssnap-prune" = { | 67 | systemd.services."zfssnap-prune" = { |
@@ -82,7 +72,9 @@ in { | |||
82 | ExecStart = let | 72 | ExecStart = let |
83 | mkSectionName = name: strings.escape [ "[" "]" ] (strings.toUpper name); | 73 | mkSectionName = name: strings.escape [ "[" "]" ] (strings.toUpper name); |
84 | zfssnapConfig = generators.toINI { inherit mkSectionName; } cfg.config; | 74 | zfssnapConfig = generators.toINI { inherit mkSectionName; } cfg.config; |
85 | in "${zfssnap}/bin/zfssnap -vv prune --config=${pkgs.writeText "zfssnap.ini" zfssnapConfig}"; | 75 | in "${zfssnap}/bin/zfssnap -vv prune --exec-newest --config=${pkgs.writeText "zfssnap.ini" zfssnapConfig}"; # DEBUG |
76 | |||
77 | LogRateLimitIntervalSec = 0; | ||
86 | }; | 78 | }; |
87 | }; | 79 | }; |
88 | 80 | ||