about summary refs log tree commit diff
path: root/corepkgs/buildenv.nix
diff options
context:
space:
mode:
authorEelco Dolstra <eelco.dolstra@logicblox.com>2012-12-04T13·20+0100
committerEelco Dolstra <eelco.dolstra@logicblox.com>2012-12-04T13·20+0100
commit5ad89398d12bf8bc83426036dedc2c601ff8f795 (patch)
tree3a23c3fb7347a2e2a2774bef566733a98287211a /corepkgs/buildenv.nix
parent21c2d8d102add45b8eda61c084aa072f8861a0ff (diff)
nix-env: Install all outputs of a derivation
If you explicitly install a package, presumably you want all of it.
So symlink all outputs in the user environment.
Diffstat (limited to 'corepkgs/buildenv.nix')
-rw-r--r--corepkgs/buildenv.nix14
1 files changed, 9 insertions, 5 deletions
diff --git a/corepkgs/buildenv.nix b/corepkgs/buildenv.nix
index 50c9923af79f..923778379263 100644
--- a/corepkgs/buildenv.nix
+++ b/corepkgs/buildenv.nix
@@ -2,18 +2,22 @@ with import <nix/config.nix>;
 
 { derivations, manifest }:
 
-derivation { 
+derivation {
   name = "user-environment";
   system = builtins.currentSystem;
   builder = perl;
   args = [ "-w" ./buildenv.pl ];
-  
+
   manifest = manifest;
 
   # !!! grmbl, need structured data for passing this in a clean way.
-  paths = derivations;
-  active = map (x: if x ? meta && x.meta ? active then x.meta.active else "true") derivations;
-  priority = map (x: if x ? meta && x.meta ? priority then x.meta.priority else "5") derivations;
+  derivations =
+    map (d:
+      [ (if d.meta.active or true then "1" else "0")
+        (d.meta.priority or 5)
+        (builtins.length d.outputs)
+      ] ++ map (output: builtins.getAttr output d) d.outputs)
+      derivations;
 
   # Building user environments remotely just causes huge amounts of
   # network traffic, so don't do that.