summary refs log tree commit diff
path: root/nixos/modules/system
diff options
context:
space:
mode:
authorThomas Tuegel <ttuegel@gmail.com>2016-10-04 21:50:17 -0500
committerThomas Tuegel <ttuegel@gmail.com>2016-10-04 21:50:17 -0500
commitd067b7bd3502a64b852ad8511502ed35d20cbc1b (patch)
treebbb8844897560a23ea5ede7e40136d6e3099956f /nixos/modules/system
parent1525568c74f80ce4486bd29f3bbc63b784e897b9 (diff)
parent379c511126f9cb1a03f77c7d4503ecb5e69592db (diff)
downloadnixlib-d067b7bd3502a64b852ad8511502ed35d20cbc1b.tar
nixlib-d067b7bd3502a64b852ad8511502ed35d20cbc1b.tar.gz
nixlib-d067b7bd3502a64b852ad8511502ed35d20cbc1b.tar.bz2
nixlib-d067b7bd3502a64b852ad8511502ed35d20cbc1b.tar.lz
nixlib-d067b7bd3502a64b852ad8511502ed35d20cbc1b.tar.xz
nixlib-d067b7bd3502a64b852ad8511502ed35d20cbc1b.tar.zst
nixlib-d067b7bd3502a64b852ad8511502ed35d20cbc1b.zip
Merge branch 'kde-5' into staging
Diffstat (limited to 'nixos/modules/system')
-rw-r--r--nixos/modules/system/boot/systemd-unit-options.nix6
-rw-r--r--nixos/modules/system/boot/systemd.nix15
2 files changed, 19 insertions, 2 deletions
diff --git a/nixos/modules/system/boot/systemd-unit-options.nix b/nixos/modules/system/boot/systemd-unit-options.nix
index f4892244de47..731b1701e00d 100644
--- a/nixos/modules/system/boot/systemd-unit-options.nix
+++ b/nixos/modules/system/boot/systemd-unit-options.nix
@@ -77,6 +77,12 @@ in rec {
       description = "Description of this unit used in systemd messages and progress indicators.";
     };
 
+    documentation = mkOption {
+      default = [];
+      type = types.listOf types.str;
+      description = "A list of URIs referencing documentation for this unit or its configuration.";
+    };
+
     requires = mkOption {
       default = [];
       type = types.listOf types.str;
diff --git a/nixos/modules/system/boot/systemd.nix b/nixos/modules/system/boot/systemd.nix
index 4a59d6474808..d44c2e234b0f 100644
--- a/nixos/modules/system/boot/systemd.nix
+++ b/nixos/modules/system/boot/systemd.nix
@@ -185,6 +185,8 @@ let
       "timers.target"
     ];
 
+  boolToString = value: if value then "yes" else "no";
+
   makeJobScript = name: text:
     let mkScriptName =  s: (replaceChars [ "\\" ] [ "-" ] (shellEscape s) );
         x = pkgs.writeTextFile { name = "unit-script"; executable = true; destination = "/bin/${mkScriptName name}"; inherit text; };
@@ -212,8 +214,10 @@ let
         // optionalAttrs (config.restartTriggers != [])
           { X-Restart-Triggers = toString config.restartTriggers; }
         // optionalAttrs (config.description != "") {
-          Description = config.description;
-        } // optionalAttrs (config.onFailure != []) {
+          Description = config.description; }
+        // optionalAttrs (config.documentation != []) {
+          Documentation = toString config.documentation; }
+        // optionalAttrs (config.onFailure != []) {
           OnFailure = toString config.onFailure;
         };
     };
@@ -620,6 +624,12 @@ in
       description = "Definition of systemd per-user socket units.";
     };
 
+    systemd.user.targets = mkOption {
+      default = {};
+      type = with types; attrsOf (submodule [ { options = targetOptions; } unitConfig] );
+      description = "Definition of systemd per-user target units.";
+    };
+
     systemd.additionalUpstreamSystemUnits = mkOption {
       default = [ ];
       type = types.listOf types.str;
@@ -748,6 +758,7 @@ in
     systemd.user.units =
          mapAttrs' (n: v: nameValuePair "${n}.service" (serviceToUnit n v)) cfg.user.services
       // mapAttrs' (n: v: nameValuePair "${n}.socket"  (socketToUnit  n v)) cfg.user.sockets
+      // mapAttrs' (n: v: nameValuePair "${n}.target"  (targetToUnit  n v)) cfg.user.targets
       // mapAttrs' (n: v: nameValuePair "${n}.timer"   (timerToUnit   n v)) cfg.user.timers;
 
     system.requiredKernelConfig = map config.lib.kernelConfig.isEnabled