diff options
author | Alyssa Ross <hi@alyssa.is> | 2019-08-22 13:47:37 +0000 |
---|---|---|
committer | Alyssa Ross <hi@alyssa.is> | 2019-08-22 18:22:22 +0000 |
commit | 1b9a13c4689af7e088eb7af5589f8c811282846a (patch) | |
tree | 3ed032953008280fb94ef894c869ff3e2a2f7865 /nixpkgs/nixos/modules/system/boot/systemd.nix | |
parent | 4999a38db7c5de0ea9f514a12ecd4133cce647f3 (diff) | |
parent | 1412af4b2cfae71d447164097d960d426e9752c0 (diff) | |
download | nixlib-1b9a13c4689af7e088eb7af5589f8c811282846a.tar nixlib-1b9a13c4689af7e088eb7af5589f8c811282846a.tar.gz nixlib-1b9a13c4689af7e088eb7af5589f8c811282846a.tar.bz2 nixlib-1b9a13c4689af7e088eb7af5589f8c811282846a.tar.lz nixlib-1b9a13c4689af7e088eb7af5589f8c811282846a.tar.xz nixlib-1b9a13c4689af7e088eb7af5589f8c811282846a.tar.zst nixlib-1b9a13c4689af7e088eb7af5589f8c811282846a.zip |
Merge remote-tracking branch 'channels/nixos-unstable'
Diffstat (limited to 'nixpkgs/nixos/modules/system/boot/systemd.nix')
-rw-r--r-- | nixpkgs/nixos/modules/system/boot/systemd.nix | 40 |
1 files changed, 24 insertions, 16 deletions
diff --git a/nixpkgs/nixos/modules/system/boot/systemd.nix b/nixpkgs/nixos/modules/system/boot/systemd.nix index cf35504e5182..1914827d0e5d 100644 --- a/nixpkgs/nixos/modules/system/boot/systemd.nix +++ b/nixpkgs/nixos/modules/system/boot/systemd.nix @@ -427,7 +427,8 @@ in systemd.packages = mkOption { default = []; type = types.listOf types.package; - description = "Packages providing systemd units."; + example = literalExample "[ pkgs.systemd-cryptsetup-generator ]"; + description = "Packages providing systemd units and hooks."; }; systemd.targets = mkOption { @@ -497,11 +498,14 @@ in ''; }; - systemd.generator-packages = mkOption { - default = []; - type = types.listOf types.package; - example = literalExample "[ pkgs.systemd-cryptsetup-generator ]"; - description = "Packages providing systemd generators."; + systemd.shutdown = mkOption { + type = types.attrsOf types.path; + default = {}; + description = '' + Definition of systemd shutdown executables. + For each <literal>NAME = VALUE</literal> pair of the attrSet, a link is generated from + <literal>/etc/systemd/system-shutdown/NAME</literal> to <literal>VALUE</literal>. + ''; }; systemd.defaultUnit = mkOption { @@ -520,7 +524,7 @@ in }; systemd.globalEnvironment = mkOption { - type = with types; attrsOf (nullOr (either str (either path package))); + type = with types; attrsOf (nullOr (oneOf [ str path package ])); default = {}; example = { TZ = "CET"; }; description = '' @@ -761,18 +765,21 @@ in environment.systemPackages = [ systemd ]; environment.etc = let - # generate contents for /etc/systemd/system-generators from - # systemd.generators and systemd.generator-packages - generators = pkgs.runCommand "system-generators" { + # generate contents for /etc/systemd/system-${type} from attrset of links and packages + hooks = type: links: pkgs.runCommand "system-${type}" { preferLocalBuild = true; - packages = cfg.generator-packages; - } '' + packages = cfg.packages; + } '' + set -e 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)} + for hook in $package/lib/systemd/system-${type}/* + do + ln -s $hook $out/ + done + done + ${concatStrings (mapAttrsToList (exec: target: "ln -s ${target} $out/${exec};\n") links)} ''; in ({ "systemd/system".source = generateUnits "system" cfg.units upstreamSystemUnits upstreamSystemWants; @@ -834,7 +841,8 @@ in ${concatStringsSep "\n" cfg.tmpfiles.rules} ''; - "systemd/system-generators" = { source = generators; }; + "systemd/system-generators" = { source = hooks "generators" cfg.generators; }; + "systemd/system-shutdown" = { source = hooks "shutdown" cfg.shutdown; }; }); services.dbus.enable = true; |