summary refs log tree commit diff
path: root/pkgs/development/python-modules/generic/wrap.sh
diff options
context:
space:
mode:
authorEelco Dolstra <eelco.dolstra@logicblox.com>2011-03-28 16:33:33 +0000
committerEelco Dolstra <eelco.dolstra@logicblox.com>2011-03-28 16:33:33 +0000
commit47adaa80e310ed270b2bccb05cf2c10d30cde453 (patch)
tree27ff8c9be064967b0b264814fb7fee57137b87b0 /pkgs/development/python-modules/generic/wrap.sh
parent641834ddf6aa2e3876378f04ee4f47c3b2153542 (diff)
downloadnixpkgs-47adaa80e310ed270b2bccb05cf2c10d30cde453.tar
nixpkgs-47adaa80e310ed270b2bccb05cf2c10d30cde453.tar.gz
nixpkgs-47adaa80e310ed270b2bccb05cf2c10d30cde453.tar.bz2
nixpkgs-47adaa80e310ed270b2bccb05cf2c10d30cde453.tar.lz
nixpkgs-47adaa80e310ed270b2bccb05cf2c10d30cde453.tar.xz
nixpkgs-47adaa80e310ed270b2bccb05cf2c10d30cde453.tar.zst
nixpkgs-47adaa80e310ed270b2bccb05cf2c10d30cde453.zip
* Move the wrapPythonPrograms function into a separate setup hook
  (wrapPython).

svn path=/nixpkgs/branches/modular-python/; revision=26580
Diffstat (limited to 'pkgs/development/python-modules/generic/wrap.sh')
-rw-r--r--pkgs/development/python-modules/generic/wrap.sh40
1 files changed, 40 insertions, 0 deletions
diff --git a/pkgs/development/python-modules/generic/wrap.sh b/pkgs/development/python-modules/generic/wrap.sh
new file mode 100644
index 00000000000..98162c8807f
--- /dev/null
+++ b/pkgs/development/python-modules/generic/wrap.sh
@@ -0,0 +1,40 @@
+wrapPythonPrograms() {
+    wrapPythonProgramsIn $out "$out $pythonPath"
+}
+
+wrapPythonProgramsIn() {
+    local dir="$1"
+    local pythonPath="$2"
+    local i
+
+    declare -A pythonPathsSeen=()
+    program_PYTHONPATH=
+    program_PATH=
+    for i in $pythonPath; do
+        _addToPythonPath $i
+    done
+
+    for i in $(find "$dir" -type f -perm +0100); do
+        if head -n1 "$i" | grep -q /python; then
+            echo "wrapping \`$i'..."
+            wrapProgram "$i" \
+                --prefix PYTHONPATH ":" $program_PYTHONPATH \
+                --prefix PATH ":" $program_PATH
+        fi
+    done
+}
+
+_addToPythonPath() {
+    local dir="$1"
+    if [ -n "${pythonPathsSeen[$dir]}" ]; then return; fi
+    pythonPathsSeen[$dir]=1
+    addToSearchPath program_PYTHONPATH $dir/lib/python2.7/site-packages
+    addToSearchPath program_PATH $dir/bin
+    local prop="$dir/nix-support/propagated-build-native-inputs"
+    if [ -e $prop ]; then
+        local i
+        for i in $(cat $prop); do
+            _addToPythonPath $i
+        done
+    fi
+}