about summary refs log tree commit diff
path: root/nixos/modules/config/system-path.nix
diff options
context:
space:
mode:
Diffstat (limited to 'nixos/modules/config/system-path.nix')
-rw-r--r--nixos/modules/config/system-path.nix20
1 files changed, 9 insertions, 11 deletions
diff --git a/nixos/modules/config/system-path.nix b/nixos/modules/config/system-path.nix
index da558a25d99b..6b4cc9ebb7d8 100644
--- a/nixos/modules/config/system-path.nix
+++ b/nixos/modules/config/system-path.nix
@@ -75,7 +75,7 @@ in
 
       outputsToLink = mkOption {
         type = types.listOf types.str;
-        default = [];
+        default = [ ];
         example = [ "doc" ];
         description = "List of package outputs to be symlinked into <filename>/run/current-system/sw</filename>.";
       };
@@ -120,18 +120,16 @@ in
         "/share/vim-plugins"
       ];
 
+    environment.outputsToLink = [ "bin" "lib" "out" ];
+
     system.path = pkgs.buildEnv {
       name = "system-path";
-      paths = let
-      inherit (config.environment) pathsToLink outputsToLink;
-        #outputs TODO: some code already merged by Eelco? make it user-customizable?
-        pkgOutputFun = pkg: lib.filter (p: p!=null) [
-          (pkg.bin or (pkg.out or pkg))
-          (pkg.man or null)
-          (pkg.info or null)
-          (pkg.doc or null)
-        ];
-        in lib.concatMap pkgOutputFun config.environment.systemPackages;
+      paths =
+        lib.filter (drv: drv != null && drv != (drv.dev or null))
+          (lib.concatMap (drv:
+            [ drv ] ++ map (outputName: drv.${outputName}.outPath or null) config.environment.outputsToLink)
+           config.environment.systemPackages);
+      inherit (config.environment) pathsToLink;
       ignoreCollisions = true;
       # !!! Hacky, should modularise.
       postBuild =