diff --git a/modules/services/home-manager-auto-expire.nix b/modules/services/home-manager-auto-expire.nix index 9522461d9..467a5554d 100644 --- a/modules/services/home-manager-auto-expire.nix +++ b/modules/services/home-manager-auto-expire.nix @@ -70,40 +70,40 @@ in }; }; - config = lib.mkIf cfg.enable { - assertions = [ - (lib.hm.assertions.assertPlatform "services.home-manager.autoExpire" pkgs lib.platforms.linux) - ]; + config = lib.mkIf cfg.enable ( + lib.mkMerge [ + (lib.mkIf pkgs.stdenv.isLinux { + systemd.user = { + timers.home-manager-auto-expire = { + Unit.Description = "Home Manager expire generations timer"; - systemd.user = { - timers.home-manager-auto-expire = { - Unit.Description = "Home Manager expire generations timer"; + Install.WantedBy = [ "timers.target" ]; - Install.WantedBy = [ "timers.target" ]; + Timer = { + OnCalendar = cfg.frequency; + Unit = "home-manager-auto-expire.service"; + Persistent = true; + }; + }; - Timer = { - OnCalendar = cfg.frequency; - Unit = "home-manager-auto-expire.service"; - Persistent = true; + services.home-manager-auto-expire = { + Unit.Description = "Home Manager expire generations"; + + Service.ExecStart = toString ( + pkgs.writeShellScript "home-manager-auto-expire" ( + '' + echo "Expire old Home Manager generations" + ${homeManagerPackage}/bin/home-manager expire-generations '${cfg.timestamp}' + '' + + lib.optionalString cfg.store.cleanup '' + echo "Clean-up Nix store" + ${pkgs.nix}/bin/nix-collect-garbage ${cfg.store.options} + '' + ) + ); + }; }; - }; - - services.home-manager-auto-expire = { - Unit.Description = "Home Manager expire generations"; - - Service.ExecStart = toString ( - pkgs.writeShellScript "home-manager-auto-expire" ( - '' - echo "Expire old Home Manager generations" - ${homeManagerPackage}/bin/home-manager expire-generations '${cfg.timestamp}' - '' - + lib.optionalString cfg.store.cleanup '' - echo "Clean-up Nix store" - ${pkgs.nix}/bin/nix-collect-garbage ${cfg.store.options} - '' - ) - ); - }; - }; - }; + }) + ] + ); }