diff options
author | Shea Levy <shea@shealevy.com> | 2013-08-18 19:28:51 -0400 |
---|---|---|
committer | Shea Levy <shea@shealevy.com> | 2013-08-18 19:28:51 -0400 |
commit | 67eb2c8ad3ceb472a6772683accdebeef4d27213 (patch) | |
tree | ce13e755baffb0142217410a1a748802f5577b06 | |
parent | b0320f130a24de1efeeb1c24578818f925a8fb9e (diff) | |
download | nixlib-67eb2c8ad3ceb472a6772683accdebeef4d27213.tar nixlib-67eb2c8ad3ceb472a6772683accdebeef4d27213.tar.gz nixlib-67eb2c8ad3ceb472a6772683accdebeef4d27213.tar.bz2 nixlib-67eb2c8ad3ceb472a6772683accdebeef4d27213.tar.lz nixlib-67eb2c8ad3ceb472a6772683accdebeef4d27213.tar.xz nixlib-67eb2c8ad3ceb472a6772683accdebeef4d27213.tar.zst nixlib-67eb2c8ad3ceb472a6772683accdebeef4d27213.zip |
Handle peerDependencies in nodePackages
Signed-off-by: Shea Levy <shea@shealevy.com>
-rw-r--r-- | pkgs/development/web/nodejs/build-node-package.nix | 24 | ||||
-rw-r--r-- | pkgs/top-level/node-packages.nix | 1 |
2 files changed, 16 insertions, 9 deletions
diff --git a/pkgs/development/web/nodejs/build-node-package.nix b/pkgs/development/web/nodejs/build-node-package.nix index 5c080ee315a8..fbee90020d39 100644 --- a/pkgs/development/web/nodejs/build-node-package.nix +++ b/pkgs/development/web/nodejs/build-node-package.nix @@ -1,6 +1,6 @@ { stdenv, runCommand, nodejs, neededNatives}: -args @ { name, src, deps ? [], flags ? [], ... }: +args @ { name, src, deps ? [], peerDeps ? [], flags ? [], ... }: with stdenv.lib; @@ -12,7 +12,7 @@ let mv *node* $out ''; - requireName = (builtins.parseDrvName name).name; + requireName = name: (builtins.parseDrvName name).name; in stdenv.mkDerivation ({ unpackPhase = "true"; @@ -21,8 +21,11 @@ stdenv.mkDerivation ({ runHook preConfigure mkdir node_modules ${stdenv.lib.concatStrings (map (dep: '' - ln -sv ${dep}/lib/node_modules/${(builtins.parseDrvName dep.name).name} node_modules/ + ln -sv ${dep}/lib/node_modules/${requireName dep.name} node_modules/ '') deps)} + ${stdenv.lib.concatStrings (map (dep: '' + ln -sv ${dep}/lib/node_modules/${requireName dep.name} node_modules/ + '') peerDeps)} export HOME=$(pwd) runHook postConfigure ''; @@ -36,10 +39,13 @@ stdenv.mkDerivation ({ installPhase = '' runHook preInstall mkdir -p $out/lib/node_modules - mv node_modules/${requireName} $out/lib/node_modules + mv node_modules/${requireName name} $out/lib/node_modules + ${stdenv.lib.concatStrings (map (dep: '' + mv node_modules/${requireName dep.name} $out/lib/node_modules + '') peerDeps)} mv node_modules/.bin $out/lib/node_modules 2>/dev/null || true - rm -fR $out/lib/node_modules/${requireName}/node_modules - mv node_modules $out/lib/node_modules/${requireName} + rm -fR $out/lib/node_modules/${requireName name}/node_modules + mv node_modules $out/lib/node_modules/${requireName name} if [ -d "$out/lib/node_modules/.bin" ]; then ln -sv $out/lib/node_modules/.bin $out/bin node=`type -p node` @@ -51,9 +57,9 @@ stdenv.mkDerivation ({ -e 's@#!/.*/node@#!'"$node"'@' \ -e 's@#!/.*/coffee@#!'"$coffee"'@' fi - if [ -e "$out/lib/node_modules/${requireName}/man" ]; then + if [ -e "$out/lib/node_modules/${requireName name}/man" ]; then mkdir $out/share - ln -sv $out/lib/node_modules/${requireName}/man $out/share/man + ln -sv $out/lib/node_modules/${requireName name}/man $out/share/man fi runHook postInstall ''; @@ -66,5 +72,5 @@ stdenv.mkDerivation ({ propagatedNativeBuildInputs = (args.propagatedNativeBuildInputs or []) ++ [ nodejs ]; # Make buildNodePackage useful with --run-env - nativeBuildInputs = (args.nativeBuildInputs or []) ++ deps ++ neededNatives; + nativeBuildInputs = (args.nativeBuildInputs or []) ++ deps ++ peerDeps ++ neededNatives; } ) diff --git a/pkgs/top-level/node-packages.nix b/pkgs/top-level/node-packages.nix index 5719967c4c5c..2b141cab7edb 100644 --- a/pkgs/top-level/node-packages.nix +++ b/pkgs/top-level/node-packages.nix @@ -34,6 +34,7 @@ let sha256 = pkg.sha256 or ""; }; deps = map (dep: builtins.getAttr dep.spec (builtins.getAttr dep.name self.full)) pkg.dependencies; + peerDeps = map (dep: builtins.getAttr dep.spec (builtins.getAttr dep.name self.full)) pkg.peerDependencies; buildInputs = nativeDepsList pkg; }; } ]; |