···
boot.extraModulePackages = [ (lib.mkIf cfg.netatop.enable cfg.netatop.package) ];
126
-
mkSystemd = type: cond: name: restartTriggers: {
127
-
${name} = lib.mkIf cond {
126
+
mkSystemd = type: name: restartTriggers: {
wantedBy = [ (if type == "services" then "multi-user.target" else if type == "timers" then "timers.target" else null) ];
···
packages = [ atop (lib.mkIf cfg.netatop.enable cfg.netatop.package) ];
138
-
mkService cfg.atopService.enable "atop" [ atop ]
139
-
// lib.mkIf cfg.atopService.enable {
140
-
# always convert logs to newer version first
141
-
# XXX might trigger TimeoutStart but restarting atop.service will
142
-
# convert remainings logs and start eventually
143
-
atop.serviceConfig.ExecStartPre = pkgs.writeShellScript "atop-update-log-format" ''
146
-
for logfile in "$LOGPATH"/atop_*
148
-
${atop}/bin/atopconvert "$logfile" "$logfile".new
149
-
# only replace old file if version was upgraded to avoid
150
-
# false positives for atop-rotate.service
151
-
if ! ${pkgs.diffutils}/bin/cmp -s "$logfile" "$logfile".new
153
-
${pkgs.coreutils}/bin/mv -v -f "$logfile".new "$logfile"
155
-
${pkgs.coreutils}/bin/rm -f "$logfile".new
160
-
// mkService cfg.atopacctService.enable "atopacct" [ atop ]
161
-
// mkService cfg.netatop.enable "netatop" [ cfg.netatop.package ]
162
-
// mkService cfg.atopgpu.enable "atopgpu" [ atop ];
163
-
timers = mkTimer cfg.atopRotateTimer.enable "atop-rotate" [ atop ];
137
+
services = lib.mkMerge [
138
+
(lib.mkIf cfg.atopService.enable (lib.recursiveUpdate
139
+
(mkService "atop" [ atop ])
141
+
# always convert logs to newer version first
142
+
# XXX might trigger TimeoutStart but restarting atop.service will
143
+
# convert remainings logs and start eventually
147
+
for logfile in "$LOGPATH"/atop_*
149
+
${atop}/bin/atopconvert "$logfile" "$logfile".new
150
+
# only replace old file if version was upgraded to avoid
151
+
# false positives for atop-rotate.service
152
+
if ! ${pkgs.diffutils}/bin/cmp -s "$logfile" "$logfile".new
154
+
${pkgs.coreutils}/bin/mv -v -f "$logfile".new "$logfile"
156
+
${pkgs.coreutils}/bin/rm -f "$logfile".new
161
+
(lib.mkIf cfg.atopacctService.enable (mkService "atopacct" [ atop ]))
162
+
(lib.mkIf cfg.netatop.enable (mkService "netatop" [ cfg.netatop.package ]))
163
+
(lib.mkIf cfg.atopgpu.enable (mkService "atopgpu" [ atop ]))
165
+
timers = lib.mkIf cfg.atopRotateTimer.enable (mkTimer "atop-rotate" [ atop ]);
security.wrappers = lib.mkIf cfg.setuidWrapper.enable {
171
-
source = "${atop}/bin/atop";
173
+
source = "${atop}/bin/atop";