Make the function to import npm2nix-generated packages accessible outside of node-packages.nix

Signed-off-by: Shea Levy <shea@shealevy.com>
This commit is contained in:
Shea Levy 2013-05-29 11:22:18 -04:00
parent 2b1eff8e17
commit 8e724713c6

View File

@ -1,13 +1,15 @@
{ pkgs, stdenv, nodejs, fetchurl, neededNatives }: { pkgs, stdenv, nodejs, fetchurl, neededNatives }:
let let
generated = builtins.listToAttrs (pkgs.lib.fold (pkg: pairs: 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; }) ++ [ (pkgs.lib.optional pkg.topLevel { name = pkg.baseName; value = builtins.getAttr pkg.fullName self; }) ++ [
{ {
name = pkg.fullName; name = pkg.fullName;
value = self.buildNodePackage rec { value = buildNodePackage rec {
name = "${pkg.baseName}-${pkg.version}"; name = "${pkg.baseName}-${pkg.version}";
src = (if pkg.patchLatest then self.patchLatest else fetchurl) { src = (if pkg.patchLatest then patchLatest else fetchurl) {
url = "http://registry.npmjs.org/${pkg.baseName}/-/${name}.tgz"; url = "http://registry.npmjs.org/${pkg.baseName}/-/${name}.tgz";
sha256 = pkg.hash; sha256 = pkg.hash;
}; };
@ -16,14 +18,16 @@ let
}; };
} }
] ++ pairs ] ++ pairs
) [] (import ./node-packages-generated.nix)); ) [] generated);
nativeDeps = {
"node-expat-*" = [ pkgs.expat ];
"rbytes-0.0.2" = [ pkgs.openssl ];
};
self = { self = {
inherit importGeneratedPackages;
nativeDeps = {
"node-expat-*" = [ pkgs.expat ];
"rbytes-0.0.2" = [ pkgs.openssl ];
};
buildNodePackage = import ../development/web/nodejs/build-node-package.nix { buildNodePackage = import ../development/web/nodejs/build-node-package.nix {
inherit stdenv nodejs neededNatives; inherit stdenv nodejs neededNatives;
inherit (pkgs) runCommand; inherit (pkgs) runCommand;
@ -40,5 +44,5 @@ let
''; '';
/* Put manual packages below here (ideally eventually managed by npm2nix */ /* Put manual packages below here (ideally eventually managed by npm2nix */
} // generated; } // importGeneratedPackages (import ./node-packages-generated.nix) self.nativeDeps self;
in self in self