summaryrefslogtreecommitdiff
path: root/modules/zfssnap/default.nix
diff options
context:
space:
mode:
Diffstat (limited to 'modules/zfssnap/default.nix')
-rw-r--r--modules/zfssnap/default.nix18
1 files changed, 16 insertions, 2 deletions
diff --git a/modules/zfssnap/default.nix b/modules/zfssnap/default.nix
index f46cd510..f6f32852 100644
--- a/modules/zfssnap/default.nix
+++ b/modules/zfssnap/default.nix
@@ -48,6 +48,20 @@ in {
48 type = types.str; 48 type = types.str;
49 default = "*-*-* *:00/5:00"; 49 default = "*-*-* *:00/5:00";
50 }; 50 };
51
52 verbosity = mkOption {
53 type = types.int;
54 default = 2;
55 };
56
57 extraPruneArgs = mkOption {
58 type = with types; listOf str;
59 default = [];
60 };
61 extraAutosnapArgs = mkOption {
62 type = with types; listOf str;
63 default = [];
64 };
51 }; 65 };
52 }; 66 };
53 67
@@ -59,7 +73,7 @@ in {
59 before = [ "zfssnap-prune.service" ]; 73 before = [ "zfssnap-prune.service" ];
60 serviceConfig = { 74 serviceConfig = {
61 Type = "oneshot"; 75 Type = "oneshot";
62 ExecStart = "${zfssnap}/bin/zfssnap -vv"; 76 ExecStart = "${zfssnap}/bin/zfssnap --verbosity=${toString cfg.verbosity} autosnap ${escapeShellArgs cfg.extraAutosnapArgs}";
63 77
64 LogRateLimitIntervalSec = 0; 78 LogRateLimitIntervalSec = 0;
65 }; 79 };
@@ -72,7 +86,7 @@ in {
72 ExecStart = let 86 ExecStart = let
73 mkSectionName = name: strings.escape [ "[" "]" ] (strings.toUpper name); 87 mkSectionName = name: strings.escape [ "[" "]" ] (strings.toUpper name);
74 zfssnapConfig = generators.toINI { inherit mkSectionName; } cfg.config; 88 zfssnapConfig = generators.toINI { inherit mkSectionName; } cfg.config;
75 in "${zfssnap}/bin/zfssnap -vv prune --config=${pkgs.writeText "zfssnap.ini" zfssnapConfig}"; 89 in "${zfssnap}/bin/zfssnap --verbosity=${toString cfg.verbosity} prune --config=${pkgs.writeText "zfssnap.ini" zfssnapConfig} ${escapeShellArgs cfg.extraPruneArgs}";
76 90
77 LogRateLimitIntervalSec = 0; 91 LogRateLimitIntervalSec = 0;
78 }; 92 };