about summary refs log tree commit diff
path: root/pkgs
diff options
context:
space:
mode:
authorMarius Bakke <m.bakke@warwick.ac.uk>2016-04-16 00:51:41 +0100
committerMarius Bakke <m.bakke@warwick.ac.uk>2016-04-16 02:58:02 +0100
commit28919e5bfa23111e099f91b7edcc5828a9d451b3 (patch)
tree666f39eefe824428d600a2ebe80da0e695024ed6 /pkgs
parentb48172ea72f9be2bae7c3a223bc83bf9088d2ec1 (diff)
downloadnixlib-28919e5bfa23111e099f91b7edcc5828a9d451b3.tar
nixlib-28919e5bfa23111e099f91b7edcc5828a9d451b3.tar.gz
nixlib-28919e5bfa23111e099f91b7edcc5828a9d451b3.tar.bz2
nixlib-28919e5bfa23111e099f91b7edcc5828a9d451b3.tar.lz
nixlib-28919e5bfa23111e099f91b7edcc5828a9d451b3.tar.xz
nixlib-28919e5bfa23111e099f91b7edcc5828a9d451b3.tar.zst
nixlib-28919e5bfa23111e099f91b7edcc5828a9d451b3.zip
wrapPythonPrograms: preserve quoted strings from makeWrapperArgs
Currently, if a user tries to to set a variable that contains
spaces, it will be broken up before being passed to wrapProgram.

This commit resolves that by converting makeWrapperArgs to an
array that preserves any quoted elements using bash's parser.
Diffstat (limited to 'pkgs')
-rw-r--r--pkgs/development/python-modules/generic/wrap.sh13
1 files changed, 6 insertions, 7 deletions
diff --git a/pkgs/development/python-modules/generic/wrap.sh b/pkgs/development/python-modules/generic/wrap.sh
index fa6a4d0102f3..5d8e2e986735 100644
--- a/pkgs/development/python-modules/generic/wrap.sh
+++ b/pkgs/development/python-modules/generic/wrap.sh
@@ -44,16 +44,15 @@ wrapPythonProgramsIn() {
                 # wrapProgram creates the executable shell script described
                 # above. The script will set PYTHONPATH and PATH variables.!
                 # (see pkgs/build-support/setup-hooks/make-wrapper.sh)
-                local wrap_args="$f \
-                                 --prefix PYTHONPATH ':' $program_PYTHONPATH \
-                                 --prefix PATH ':' $program_PATH:$dir/bin"
+                local -a wrap_args=("$f"
+                                 --prefix PYTHONPATH ':' "$program_PYTHONPATH"
+                                 --prefix PATH ':' "$program_PATH:$dir/bin")
 
                 # Add any additional arguments provided by makeWrapperArgs
                 # argument to buildPythonPackage.
-                for arg in $makeWrapperArgs; do
-                    wrap_args="$wrap_args $arg"
-                done
-                wrapProgram $wrap_args
+                local -a user_args="($makeWrapperArgs)"
+                local -a wrapProgramArgs=("${wrap_args[@]}" "${user_args[@]}")
+                wrapProgram "${wrapProgramArgs[@]}"
             fi
         fi
     done