[Fix] `nvm_supports_source_options`: work around a bug in bash 3.2

See https://github.com/creationix/nvm/issues/1978#issuecomment-453480231

Fixes #1978.
Jordan Harband 2019-02-26 16:53:36 -08:00
parent 1ede50cbae
commit 43402df896
No known key found for this signature in database
GPG Key ID: 64A196AEE0916D55
2 changed files with 31 additions and 1 deletions

5
nvm.sh
View File

@ -3559,7 +3559,10 @@ nvm_install_default_packages() {
nvm_supports_source_options() {
# shellcheck disable=SC1091,SC2240
[ "_$(nvm_echo '[ $# -gt 0 ] && nvm_echo $1' | . /dev/stdin yes 2>/dev/null)" = "_yes" ]
[ "_$( . /dev/stdin yes 2> /dev/null <<'EOF'
[ $# -gt 0 ] && nvm_echo $1
EOF
)" = "_yes" ]
}
nvm_supports_xz() {

View File

@ -0,0 +1,27 @@
#!/bin/sh
die () { echo "$@" ; exit 1; }
\. ../../../nvm.sh
x=0
i=0
runs=5
calls=500
first_result=false
if (nvm_supports_source_options && printf .); then
first_result=true
fi
while [ $x -le $runs ]; do
y=$x
x=$(( x + 1 ))
while [ $i -le $calls ]; do
this_result=false
if (nvm_supports_source_options && printf .); then
this_result=true
fi
[ $this_result = $first_result ] || die "call ${i}, run ${y} got ${this_result}; expected ${first_result}"
i=$(( i + 1 ))
done
done
echo "${runs} runs of ${calls} calls succeeded"