diff options
Diffstat (limited to 'nixpkgs/pkgs/build-support/setup-hooks/make-wrapper.sh')
-rw-r--r-- | nixpkgs/pkgs/build-support/setup-hooks/make-wrapper.sh | 18 |
1 files changed, 17 insertions, 1 deletions
diff --git a/nixpkgs/pkgs/build-support/setup-hooks/make-wrapper.sh b/nixpkgs/pkgs/build-support/setup-hooks/make-wrapper.sh index 604096135c20..fa6065832894 100644 --- a/nixpkgs/pkgs/build-support/setup-hooks/make-wrapper.sh +++ b/nixpkgs/pkgs/build-support/setup-hooks/make-wrapper.sh @@ -51,7 +51,19 @@ makeWrapper() { local varName="$2" # name of list variable to add to local separator="$3" # character used to separate elements of list local value="$4" # one value, or multiple values separated by `separator`, to add to list - if test -n "$value"; then + + # Disable file globbing, since bash will otherwise try to find + # filenames matching the the value to be prefixed/suffixed if + # it contains characters considered wildcards, such as `?` and + # `*`. We want the value as is, except we also want to split + # it on on the separator; hence we can't quote it. + local reenableGlob=0 + if [[ ! -o noglob ]]; then + reenableGlob=1 + fi + set -o noglob + + if [[ -n "$value" ]]; then local old_ifs=$IFS IFS=$separator @@ -86,6 +98,10 @@ makeWrapper() { done IFS=$old_ifs fi + + if (( reenableGlob )); then + set +o noglob + fi } mkdir -p "$(dirname "$wrapper")" |