diff options
Diffstat (limited to 'system-profiles')
| -rw-r--r-- | system-profiles/networkmanager.nix | 2 | ||||
| -rw-r--r-- | system-profiles/rebuild-machines/default.nix | 29 |
2 files changed, 31 insertions, 0 deletions
diff --git a/system-profiles/networkmanager.nix b/system-profiles/networkmanager.nix index d1eb9cd1..878a12c4 100644 --- a/system-profiles/networkmanager.nix +++ b/system-profiles/networkmanager.nix | |||
| @@ -22,5 +22,7 @@ with lib; | |||
| 22 | systemd.services."systemd-networkd-wait-online".enable = false; | 22 | systemd.services."systemd-networkd-wait-online".enable = false; |
| 23 | 23 | ||
| 24 | services.resolved.enable = false; | 24 | services.resolved.enable = false; |
| 25 | |||
| 26 | environment.noXlibs = false; | ||
| 25 | }; | 27 | }; |
| 26 | } | 28 | } |
diff --git a/system-profiles/rebuild-machines/default.nix b/system-profiles/rebuild-machines/default.nix index e2a15aae..68788023 100644 --- a/system-profiles/rebuild-machines/default.nix +++ b/system-profiles/rebuild-machines/default.nix | |||
| @@ -90,6 +90,13 @@ in { | |||
| 90 | format = "binary"; | 90 | format = "binary"; |
| 91 | }; | 91 | }; |
| 92 | }; | 92 | }; |
| 93 | |||
| 94 | period = mkOption { | ||
| 95 | type = types.nullOr types.str; | ||
| 96 | description = "Call <code>rebuild-${hostName} boot</code> periodically"; | ||
| 97 | default = null; | ||
| 98 | example = "hourly"; | ||
| 99 | }; | ||
| 93 | }; | 100 | }; |
| 94 | }; | 101 | }; |
| 95 | 102 | ||
| @@ -107,5 +114,27 @@ in { | |||
| 107 | }; | 114 | }; |
| 108 | 115 | ||
| 109 | environment.systemPackages = [ rebuildScript ]; | 116 | environment.systemPackages = [ rebuildScript ]; |
| 117 | |||
| 118 | systemd.services."rebuild-${hostName}" = lib.mkIf (cfg.period != null) { | ||
| 119 | description = "Upgrade System on Next Boot"; | ||
| 120 | requisite = [ "network.target" ]; | ||
| 121 | after = [ "network.target" ]; | ||
| 122 | |||
| 123 | restartIfChanged = false; | ||
| 124 | unitConfig.X-StopOnRemoval = false; | ||
| 125 | |||
| 126 | serviceConfig = { | ||
| 127 | Type = "oneshot"; | ||
| 128 | ExecStart = "${rebuildScript}/bin/${cfg.scriptName} boot"; | ||
| 129 | }; | ||
| 130 | }; | ||
| 131 | |||
| 132 | systemd.timers."rebuild-${hostName}" = lib.mkIf (cfg.period != null) { | ||
| 133 | wantedBy = [ "timers.target" ]; | ||
| 134 | timerConfig = { | ||
| 135 | OnCalendar = cfg.period; | ||
| 136 | Persistent = true; | ||
| 137 | }; | ||
| 138 | }; | ||
| 110 | }; | 139 | }; |
| 111 | } | 140 | } |
