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