diff options
author | Moritz Ulrich <moritz@tarn-vedra.de> | 2016-03-25 12:45:54 +0100 |
---|---|---|
committer | Moritz Ulrich <moritz@tarn-vedra.de> | 2016-04-08 14:50:20 +0200 |
commit | e366d8294ee3afedfd951222ec8a8fc8c60c1063 (patch) | |
tree | 112108e5a324b3f3763cd4e49442571c36bc5771 /nixos | |
parent | 5c770c4c0bce80fabdf0bc69c6a9bfc0ff012a1a (diff) | |
download | nixlib-e366d8294ee3afedfd951222ec8a8fc8c60c1063.tar nixlib-e366d8294ee3afedfd951222ec8a8fc8c60c1063.tar.gz nixlib-e366d8294ee3afedfd951222ec8a8fc8c60c1063.tar.bz2 nixlib-e366d8294ee3afedfd951222ec8a8fc8c60c1063.tar.lz nixlib-e366d8294ee3afedfd951222ec8a8fc8c60c1063.tar.xz nixlib-e366d8294ee3afedfd951222ec8a8fc8c60c1063.tar.zst nixlib-e366d8294ee3afedfd951222ec8a8fc8c60c1063.zip |
systemd.generators: Generate folders via environment.etc.
Diffstat (limited to 'nixos')
-rw-r--r-- | nixos/modules/system/boot/systemd.nix | 19 |
1 files changed, 13 insertions, 6 deletions
diff --git a/nixos/modules/system/boot/systemd.nix b/nixos/modules/system/boot/systemd.nix index 244a4cd61f0f..3f497566ff11 100644 --- a/nixos/modules/system/boot/systemd.nix +++ b/nixos/modules/system/boot/systemd.nix @@ -636,11 +636,16 @@ in environment.systemPackages = [ systemd ]; environment.etc = let - generators = (fold (p: attrs: let path = "${p}/lib/systemd/system-generators"; - in attrs // (mapAttrs' (name: _: nameValuePair name "${path}/${toString name}") - (builtins.readDir "${path}"))) - cfg.generators - cfg.generator-packages); + # generate contents for /etc/systemd/system-generators from + # systemd.generators and systemd.generator-packages + generators = pkgs.runCommand "system-generators" { packages = cfg.generator-packages; } '' + mkdir -p $out + for package in $packages + do + ln -s $package/lib/systemd/system-generators/* $out/ + done; + ${concatStrings (mapAttrsToList (generator: target: "ln -s ${target} $out/${generator};\n") cfg.generators)} + ''; in ({ "systemd/system".source = generateUnits "system" cfg.units upstreamSystemUnits upstreamSystemWants; @@ -680,7 +685,9 @@ in ${concatStringsSep "\n" cfg.tmpfiles.rules} ''; - } // mapAttrs' (n: v: nameValuePair "systemd/system-generators/${n}" {"source"=v;}) generators); + + "systemd/system-generators" = { source = generators; }; + }); system.activationScripts.systemd = stringAfter [ "groups" ] '' |