Prevent attempts to `nvm use` a circular reference.

master
Jordan Harband 2014-10-22 01:48:16 -07:00
parent 9b91734f0b
commit 2d529cc8b7
2 changed files with 25 additions and 0 deletions

3
nvm.sh
View File

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

View File

@ -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;