|
|
|
@ -21,13 +21,45 @@ in |
|
|
|
|
}; |
|
|
|
|
|
|
|
|
|
dates = mkOption { |
|
|
|
|
type = types.str; |
|
|
|
|
default = "03:15"; |
|
|
|
|
example = "weekly"; |
|
|
|
|
description = '' |
|
|
|
|
How often or when garbage collection is performed. For most desktop and server systems |
|
|
|
|
a sufficient garbage collection is once a week. |
|
|
|
|
|
|
|
|
|
The format is described in |
|
|
|
|
<citerefentry><refentrytitle>systemd.time</refentrytitle> |
|
|
|
|
<manvolnum>7</manvolnum></citerefentry>. |
|
|
|
|
''; |
|
|
|
|
}; |
|
|
|
|
|
|
|
|
|
randomizedDelaySec = mkOption { |
|
|
|
|
default = "0"; |
|
|
|
|
type = types.str; |
|
|
|
|
example = "45min"; |
|
|
|
|
description = '' |
|
|
|
|
Specification (in the format described by |
|
|
|
|
Add a randomized delay before each automatic upgrade. |
|
|
|
|
The delay will be chosen between zero and this value. |
|
|
|
|
This value must be a time span in the format specified by |
|
|
|
|
<citerefentry><refentrytitle>systemd.time</refentrytitle> |
|
|
|
|
<manvolnum>7</manvolnum></citerefentry>) of the time at |
|
|
|
|
which the garbage collector will run. |
|
|
|
|
<manvolnum>7</manvolnum></citerefentry> |
|
|
|
|
''; |
|
|
|
|
}; |
|
|
|
|
|
|
|
|
|
persistent = mkOption { |
|
|
|
|
default = true; |
|
|
|
|
type = types.bool; |
|
|
|
|
example = false; |
|
|
|
|
description = '' |
|
|
|
|
Takes a boolean argument. If true, the time when the service |
|
|
|
|
unit was last triggered is stored on disk. When the timer is |
|
|
|
|
activated, the service unit is triggered immediately if it |
|
|
|
|
would have been triggered at least once during the time when |
|
|
|
|
the timer was inactive. Such triggering is nonetheless |
|
|
|
|
subject to the delay imposed by RandomizedDelaySec=. This is |
|
|
|
|
useful to catch up on missed runs of the service when the |
|
|
|
|
system was powered down. |
|
|
|
|
''; |
|
|
|
|
}; |
|
|
|
|
|
|
|
|
@ -50,11 +82,18 @@ in |
|
|
|
|
|
|
|
|
|
config = { |
|
|
|
|
|
|
|
|
|
systemd.services.nix-gc = |
|
|
|
|
{ description = "Nix Garbage Collector"; |
|
|
|
|
script = "exec ${config.nix.package.out}/bin/nix-collect-garbage ${cfg.options}"; |
|
|
|
|
startAt = optional cfg.automatic cfg.dates; |
|
|
|
|
systemd.services.nix-gc = { |
|
|
|
|
description = "Nix Garbage Collector"; |
|
|
|
|
script = "exec ${config.nix.package.out}/bin/nix-collect-garbage ${cfg.options}"; |
|
|
|
|
startAt = optional cfg.automatic cfg.dates; |
|
|
|
|
}; |
|
|
|
|
|
|
|
|
|
systemd.timers.nix-gc = lib.mkIf cfg.automatic { |
|
|
|
|
timerConfig = { |
|
|
|
|
RandomizedDelaySec = cfg.randomizedDelaySec; |
|
|
|
|
Persistent = cfg.persistent; |
|
|
|
|
}; |
|
|
|
|
}; |
|
|
|
|
|
|
|
|
|
}; |
|
|
|
|
|
|
|
|
|