diff --git a/modules/services/nix-gc.nix b/modules/services/nix-gc.nix index d95d6e94c..a49220990 100644 --- a/modules/services/nix-gc.nix +++ b/modules/services/nix-gc.nix @@ -66,7 +66,7 @@ let ]; }; in - freq.${frequency}; + freq.${frequency} or null; nixPackage = if config.nix.enable && config.nix.package != null then config.nix.package else pkgs.nix; @@ -95,7 +95,7 @@ in On Linux this is a string as defined by {manpage}`systemd.time(7)`. - On Darwin it must be one of: ${toString darwinIntervals}, which are + On Darwin it must be one of: ${lib.concatStringsSep ", " darwinIntervals}, which are implemented as defined in the manual page above. ''; }; @@ -172,7 +172,7 @@ in assertions = [ { assertion = lib.elem cfg.frequency darwinIntervals; - message = "On Darwin nix.gc.frequency must be one of: ${toString darwinIntervals}."; + message = "On Darwin nix.gc.frequency must be one of: ${lib.concatStringsSep ", " darwinIntervals}."; } ]; diff --git a/tests/modules/services/nix-gc-darwin/darwin-nix-gc-interval-assertion.nix b/tests/modules/services/nix-gc-darwin/darwin-nix-gc-interval-assertion.nix new file mode 100644 index 000000000..6dbf70e83 --- /dev/null +++ b/tests/modules/services/nix-gc-darwin/darwin-nix-gc-interval-assertion.nix @@ -0,0 +1,10 @@ +{ + nix.gc = { + automatic = true; + frequency = "00:02:03"; + }; + + test.asserts.assertions.expected = [ + "On Darwin nix.gc.frequency must be one of: hourly, daily, weekly, monthly, semiannually, annually." + ]; +} diff --git a/tests/modules/services/nix-gc-darwin/default.nix b/tests/modules/services/nix-gc-darwin/default.nix index f2fc20aa7..251e0d23a 100644 --- a/tests/modules/services/nix-gc-darwin/default.nix +++ b/tests/modules/services/nix-gc-darwin/default.nix @@ -1 +1,4 @@ -{ nix-gc = ./basic.nix; } +{ + nix-gc = ./basic.nix; + darwin-nix-gc-interval-assertion = ./darwin-nix-gc-interval-assertion.nix; +}