node-packages.nix: Move non top-level attrs to a sub-attr `full'

Since `full' isn't recursed into for derivations, nix-env -qaP * won't
show attributes with problematic characters.

Signed-off-by: Shea Levy <shea@shealevy.com>
This commit is contained in:
Shea Levy 2013-05-31 12:38:26 -04:00
parent 85d2bf78e1
commit 758f20f0b8

View File

@ -3,9 +3,14 @@
let let
inherit (self) buildNodePackage patchLatest; inherit (self) buildNodePackage patchLatest;
importGeneratedPackages = generated: nativeDeps: self: builtins.listToAttrs (pkgs.lib.fold (pkg: pairs: importGeneratedPackages = generated: nativeDeps: self:
(pkgs.lib.optional pkg.topLevel { name = pkg.baseName; value = builtins.getAttr pkg.fullName self; }) ++ [ let
{ all = pkgs.lib.fold (pkg: { top-level, full }: {
top-level = top-level ++ pkgs.lib.optional pkg.topLevel {
name = pkg.baseName;
value = builtins.getAttr pkg.fullName self.full;
};
full = [ {
name = pkg.fullName; name = pkg.fullName;
value = buildNodePackage rec { value = buildNodePackage rec {
name = "${pkg.baseName}-${pkg.version}"; name = "${pkg.baseName}-${pkg.version}";
@ -13,12 +18,12 @@ let
url = "http://registry.npmjs.org/${pkg.baseName}/-/${name}.tgz"; url = "http://registry.npmjs.org/${pkg.baseName}/-/${name}.tgz";
sha256 = pkg.hash; sha256 = pkg.hash;
}; };
deps = map (dep: builtins.getAttr "${dep.name}-${dep.range}" self) pkg.dependencies; deps = map (dep: builtins.getAttr "${dep.name}-${dep.range}" self.full) pkg.dependencies;
buildInputs = if builtins.hasAttr name nativeDeps then builtins.getAttr name nativeDeps else []; buildInputs = if builtins.hasAttr name nativeDeps then builtins.getAttr name nativeDeps else [];
}; };
} } ] ++ full;
] ++ pairs } ) { top-level = []; full = []; } generated;
) [] generated); in builtins.listToAttrs all.top-level // { full = builtins.listToAttrs all.full; };
self = { self = {
inherit importGeneratedPackages; inherit importGeneratedPackages;