From 758f20f0b8b7ed25268e308bb5be6cb29668a05f Mon Sep 17 00:00:00 2001 From: Shea Levy Date: Fri, 31 May 2013 12:38:26 -0400 Subject: [PATCH] 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 --- pkgs/top-level/node-packages.nix | 35 ++++++++++++++++++-------------- 1 file changed, 20 insertions(+), 15 deletions(-) diff --git a/pkgs/top-level/node-packages.nix b/pkgs/top-level/node-packages.nix index e38cd3e6936..8eb14a5c521 100644 --- a/pkgs/top-level/node-packages.nix +++ b/pkgs/top-level/node-packages.nix @@ -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;