summary refs log tree commit diff
path: root/pkgs/development/interpreters/python/wrapper.nix
diff options
context:
space:
mode:
authorNikolay Amiantov <ab@fmap.me>2015-08-14 14:06:15 +0300
committerNikolay Amiantov <ab@fmap.me>2015-08-17 21:22:50 +0300
commit344e5221664a8c232c3b2b0c7667dcd4c229834f (patch)
treed1254cf1dd7fdd512fa716fec5e0431c4980996e /pkgs/development/interpreters/python/wrapper.nix
parent0ccf8eae2fde05fe196c39f0c7b7b70af8752a28 (diff)
downloadnixpkgs-344e5221664a8c232c3b2b0c7667dcd4c229834f.tar
nixpkgs-344e5221664a8c232c3b2b0c7667dcd4c229834f.tar.gz
nixpkgs-344e5221664a8c232c3b2b0c7667dcd4c229834f.tar.bz2
nixpkgs-344e5221664a8c232c3b2b0c7667dcd4c229834f.tar.lz
nixpkgs-344e5221664a8c232c3b2b0c7667dcd4c229834f.tar.xz
nixpkgs-344e5221664a8c232c3b2b0c7667dcd4c229834f.tar.zst
nixpkgs-344e5221664a8c232c3b2b0c7667dcd4c229834f.zip
python: add .env for convenient nix-shell's
Diffstat (limited to 'pkgs/development/interpreters/python/wrapper.nix')
-rw-r--r--pkgs/development/interpreters/python/wrapper.nix54
1 files changed, 33 insertions, 21 deletions
diff --git a/pkgs/development/interpreters/python/wrapper.nix b/pkgs/development/interpreters/python/wrapper.nix
index 163e8d7194b..f757147b047 100644
--- a/pkgs/development/interpreters/python/wrapper.nix
+++ b/pkgs/development/interpreters/python/wrapper.nix
@@ -6,28 +6,40 @@
 # Create a python executable that knows about additional packages.
 let
   recursivePthLoader = import ../../python-modules/recursive-pth-loader/default.nix { stdenv = stdenv; python = python; };
-in
-(buildEnv {
-  name = "${python.name}-env";
-  paths = stdenv.lib.filter (x : x ? pythonPath) (stdenv.lib.closePropagation extraLibs) ++ [ python recursivePthLoader ];
+  env = (buildEnv {
+    name = "${python.name}-env";
+    paths = stdenv.lib.filter (x : x ? pythonPath) (stdenv.lib.closePropagation extraLibs) ++ [ python recursivePthLoader ];
 
-  inherit ignoreCollisions;
+    inherit ignoreCollisions;
 
-  postBuild = ''
-    . "${makeWrapper}/nix-support/setup-hook"
+    postBuild = ''
+      . "${makeWrapper}/nix-support/setup-hook"
 
-    if [ -L "$out/bin" ]; then
-        unlink "$out/bin"
-    fi
-    mkdir -p "$out/bin"
+      if [ -L "$out/bin" ]; then
+          unlink "$out/bin"
+      fi
+      mkdir -p "$out/bin"
 
-    cd "${python}/bin"
-    for prg in *; do
-      rm -f "$out/bin/$prg"
-      makeWrapper "${python}/bin/$prg" "$out/bin/$prg" --set PYTHONHOME "$out"
-    done
-  '' + postBuild;
-}) // {
-  inherit python;
-  inherit (python) meta;
-}
+      cd "${python}/bin"
+      for prg in *; do
+        rm -f "$out/bin/$prg"
+        makeWrapper "${python}/bin/$prg" "$out/bin/$prg" --set PYTHONHOME "$out"
+      done
+    '' + postBuild;
+
+    passthru.env = stdenv.mkDerivation {
+      name = "interactive-${python.name}-environment";
+      nativeBuildInputs = [ env ];
+
+      buildCommand = ''
+        echo >&2 ""
+        echo >&2 "*** Python 'env' attributes are intended for interactive nix-shell sessions, not for building! ***"
+        echo >&2 ""
+        exit 1
+      '';
+    };
+  }) // {
+    inherit python;
+    inherit (python) meta;
+  };
+in env