]> git.scottworley.com Git - nix-profile-gc/blobdiff - modules/profile-gc.nix
License: GPL 3
[nix-profile-gc] / modules / profile-gc.nix
index ba2821a8fc599e45397c6550c59cb547283d550f..5444798568249e38724cb965ea3068d0747d2afd 100644 (file)
@@ -1,3 +1,18 @@
+# nix-profile-gc: More gently remove old profiles
+# Copyright (C) 2022 Scott Worley <scottworley@scottworley.com>
+#
+# This program is free software: you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation, version 3.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program.  If not, see <https://www.gnu.org/licenses/>.
+
 { lib, config, pkgs, ... }:
 let
   inherit (lib) escapeShellArg;
 { lib, config, pkgs, ... }:
 let
   inherit (lib) escapeShellArg;
@@ -14,7 +29,7 @@ in {
       dryRun = lib.mkOption {
         description = "Say what would have been deleted rather than actually deleting profiles";
         type = lib.types.bool;
       dryRun = lib.mkOption {
         description = "Say what would have been deleted rather than actually deleting profiles";
         type = lib.types.bool;
-        default = true;
+        default = false;
       };
       keepLast = lib.mkOption {
         description = ''
       };
       keepLast = lib.mkOption {
         description = ''
@@ -105,7 +120,7 @@ in {
       fi
 
       alive_threshold="$(< ${parse-duration cfg.activeThreshold})"
       fi
 
       alive_threshold="$(< ${parse-duration cfg.activeThreshold})"
-      alive_loginterval="$(< ${parse-duration config.systemd.timers.profile-gc-log-active.timerConfig.OnUnitActiveSec})"
+      alive_loginterval="$(< ${parse-duration cfg.activeMeasurementGranularity})"
       if (( alive_threshold < alive_loginterval ));then
         echo "Liveness threshold is too low.  Not doing any profile garbage collection." >&2
         exit 0
       if (( alive_threshold < alive_loginterval ));then
         echo "Liveness threshold is too low.  Not doing any profile garbage collection." >&2
         exit 0
@@ -197,6 +212,7 @@ in {
     '';
     systemd.timers.profile-gc-log-active = {
       wantedBy = [ "timers.target" ];
     '';
     systemd.timers.profile-gc-log-active = {
       wantedBy = [ "timers.target" ];
+      timerConfig.OnActiveSec = cfg.activeMeasurementGranularity;
       timerConfig.OnUnitActiveSec = cfg.activeMeasurementGranularity;
     };
     systemd.services.profile-gc-log-active = {
       timerConfig.OnUnitActiveSec = cfg.activeMeasurementGranularity;
     };
     systemd.services.profile-gc-log-active = {