Browse Source

Prevent attempts to `nvm use` a circular reference.

master
Jordan Harband 10 years ago
parent
commit
2d529cc8b7
  1. 3
      nvm.sh
  2. 22
      test/fast/Running "nvm use foo" where "foo" is circular aborts

3
nvm.sh

@ -821,6 +821,9 @@ nvm() {
echo "System version of node not found." >&2
return 127
fi
elif [ "_$VERSION" = "_∞" ]; then
echo "The alias \"$2\" leads to an infinite loop. Aborting." >&2
return 8
fi
local NVM_VERSION_DIR

22
test/fast/Running "nvm use foo" where "foo" is circular aborts

@ -0,0 +1,22 @@
#!/bin/sh
die () { echo $@ ; cleanup ; exit 1; }
cleanup() {
rm -rf ../../alias/foo
}
. ../../nvm.sh
echo 'foo' > ../../alias/foo
OUTPUT="$(nvm use foo 2>&1)"
EXPECTED_OUTPUT='The alias "foo" leads to an infinite loop. Aborting.'
[ "_$OUTPUT" = "_$EXPECTED_OUTPUT" ] \
|| die "'nvm use foo' did not output '$EXPECTED_OUTPUT'; got '$OUTPUT'"
EXIT_CODE="$(nvm use foo 2>/dev/null ; echo $?)"
[ "_$EXIT_CODE" = "_8" ] || die "Expected exit code 8; got $EXIT_CODE"
cleanup;
Loading…
Cancel
Save