diff options
author | Sandro Jäckel <sandro.jaeckel@gmail.com> | 2023-11-09 01:59:59 +0100 |
---|---|---|
committer | Sandro Jäckel <sandro.jaeckel@gmail.com> | 2024-01-02 23:09:03 +0100 |
commit | 9fbf82d9cb48d7dab89611139c51816d599dbe2d (patch) | |
tree | dbaff7ad6c7e0986c13fdbdbdc0e13b62369a989 /nixos/lib | |
parent | 7c19f30a07d07d3fceaa2f6fced02c42c43563a8 (diff) |
systemd-lib: add Install WantedBy section to make units similar to upstream ones
and make them better grepable
Diffstat (limited to 'nixos/lib')
-rw-r--r-- | nixos/lib/systemd-lib.nix | 59 |
1 files changed, 29 insertions, 30 deletions
diff --git a/nixos/lib/systemd-lib.nix b/nixos/lib/systemd-lib.nix index 820ccbcbf72a1..22a7dd1ff9a11 100644 --- a/nixos/lib/systemd-lib.nix +++ b/nixos/lib/systemd-lib.nix @@ -360,9 +360,13 @@ in rec { }; }; - commonUnitText = def: '' + commonUnitText = def: lines: '' [Unit] ${attrsToSection def.unitConfig} + '' + lines + lib.optionalString (def.wantedBy != [ ]) '' + + [Install] + WantedBy=${concatStringsSep " " def.wantedBy} ''; targetToUnit = name: def: @@ -376,7 +380,7 @@ in rec { serviceToUnit = name: def: { inherit (def) aliases wantedBy requiredBy enable overrideStrategy; - text = commonUnitText def + '' + text = commonUnitText def ('' [Service] '' + (let env = cfg.globalEnvironment // def.environment; in concatMapStrings (n: @@ -392,45 +396,41 @@ in rec { '' else "") + optionalString (def ? stopIfChanged && !def.stopIfChanged) '' X-StopIfChanged=false - '' + attrsToSection def.serviceConfig; + '' + attrsToSection def.serviceConfig); }; socketToUnit = name: def: { inherit (def) aliases wantedBy requiredBy enable overrideStrategy; - text = commonUnitText def + - '' - [Socket] - ${attrsToSection def.socketConfig} - ${concatStringsSep "\n" (map (s: "ListenStream=${s}") def.listenStreams)} - ${concatStringsSep "\n" (map (s: "ListenDatagram=${s}") def.listenDatagrams)} - ''; + text = commonUnitText def '' + [Socket] + ${attrsToSection def.socketConfig} + ${concatStringsSep "\n" (map (s: "ListenStream=${s}") def.listenStreams)} + ${concatStringsSep "\n" (map (s: "ListenDatagram=${s}") def.listenDatagrams)} + ''; }; timerToUnit = name: def: { inherit (def) aliases wantedBy requiredBy enable overrideStrategy; - text = commonUnitText def + - '' - [Timer] - ${attrsToSection def.timerConfig} - ''; + text = commonUnitText def '' + [Timer] + ${attrsToSection def.timerConfig} + ''; }; pathToUnit = name: def: { inherit (def) aliases wantedBy requiredBy enable overrideStrategy; - text = commonUnitText def + - '' - [Path] - ${attrsToSection def.pathConfig} - ''; + text = commonUnitText def '' + [Path] + ${attrsToSection def.pathConfig} + ''; }; mountToUnit = name: def: { inherit (def) aliases wantedBy requiredBy enable overrideStrategy; - text = commonUnitText def + - '' - [Mount] - ${attrsToSection def.mountConfig} - ''; + text = commonUnitText def '' + [Mount] + ${attrsToSection def.mountConfig} + ''; }; automountToUnit = name: def: @@ -444,11 +444,10 @@ in rec { sliceToUnit = name: def: { inherit (def) aliases wantedBy requiredBy enable overrideStrategy; - text = commonUnitText def + - '' - [Slice] - ${attrsToSection def.sliceConfig} - ''; + text = commonUnitText def '' + [Slice] + ${attrsToSection def.sliceConfig} + ''; }; # Create a directory that contains systemd definition files from an attrset |