summary refs log tree commit diff
path: root/pkgs/development/web/nodejs/build-node-package.nix
diff options
context:
space:
mode:
authorVladimír Čunát <vcunat@gmail.com>2014-08-02 05:08:07 +0200
committerVladimír Čunát <vcunat@gmail.com>2014-08-02 05:08:07 +0200
commit6295a3ca36cc746e11c7b01fd47562fde3a703ec (patch)
tree18d9289564e8893a9d7e4df671e5226bcd2b0f0c /pkgs/development/web/nodejs/build-node-package.nix
parent91b53aaebc0ca2e80d073459324515879e300f34 (diff)
parentfb565f1a4ea2a71debe48e206ef6c2d032bba0a3 (diff)
downloadnixpkgs-6295a3ca36cc746e11c7b01fd47562fde3a703ec.tar
nixpkgs-6295a3ca36cc746e11c7b01fd47562fde3a703ec.tar.gz
nixpkgs-6295a3ca36cc746e11c7b01fd47562fde3a703ec.tar.bz2
nixpkgs-6295a3ca36cc746e11c7b01fd47562fde3a703ec.tar.lz
nixpkgs-6295a3ca36cc746e11c7b01fd47562fde3a703ec.tar.xz
nixpkgs-6295a3ca36cc746e11c7b01fd47562fde3a703ec.tar.zst
nixpkgs-6295a3ca36cc746e11c7b01fd47562fde3a703ec.zip
Merge recent master into x-updates
Hydra: ?compare=1142825

Conflicts (easy):
	pkgs/applications/audio/lmms/default.nix
	pkgs/desktops/e18/enlightenment.nix
	pkgs/games/exult/default.nix
	pkgs/os-specific/linux/alsa-plugins/default.nix
Diffstat (limited to 'pkgs/development/web/nodejs/build-node-package.nix')
-rw-r--r--pkgs/development/web/nodejs/build-node-package.nix12
1 files changed, 11 insertions, 1 deletions
diff --git a/pkgs/development/web/nodejs/build-node-package.nix b/pkgs/development/web/nodejs/build-node-package.nix
index 544634626b0..84b0da1674c 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 ? [], peerDependencies ? [], flags ? [], ... }:
+args @ { name, src, deps ? [], peerDependencies ? [], flags ? [], preShellHook ? "",  postShellHook ? "", ... }:
 
 with stdenv.lib;
 
@@ -80,6 +80,16 @@ stdenv.mkDerivation ({
   preFixup = concatStringsSep "\n" (map (src: ''
     find $out -type f -print0 | xargs -0 sed -i 's|${src}|${src.name}|g'
   '') src);
+
+  shellHook = ''
+    ${preShellHook}
+    export PATH=${nodejs}/bin:$(pwd)/node_modules/.bin:$PATH
+    mkdir -p node_modules
+    ${concatStrings (concatMap (dep: map (name: ''
+      ln -sfv ${dep}/lib/node_modules/${name} node_modules/
+    '') dep.names) deps)}
+    ${postShellHook}
+  '';
 } // args // {
   # Run the node setup hook when this package is a build input
   propagatedNativeBuildInputs = (args.propagatedNativeBuildInputs or []) ++ [ nodejs ];