diff options
author | Eelco Dolstra <eelco.dolstra@logicblox.com> | 2012-12-04T13·20+0100 |
---|---|---|
committer | Eelco Dolstra <eelco.dolstra@logicblox.com> | 2012-12-04T13·20+0100 |
commit | 5ad89398d12bf8bc83426036dedc2c601ff8f795 (patch) | |
tree | 3a23c3fb7347a2e2a2774bef566733a98287211a /corepkgs/buildenv.nix | |
parent | 21c2d8d102add45b8eda61c084aa072f8861a0ff (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.nix | 14 |
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. |