Browse Source

[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 6 years ago
parent
commit
43402df896
No known key found for this signature in database
GPG Key ID: 64A196AEE0916D55
  1. 5
      nvm.sh
  2. 27
      test/fast/Unit tests/nvm_supports_source_options

5
nvm.sh

@ -3559,7 +3559,10 @@ nvm_install_default_packages() { @@ -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() {

27
test/fast/Unit tests/nvm_supports_source_options

@ -0,0 +1,27 @@ @@ -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"
Loading…
Cancel
Save