Ensure that `nvm run 0.12 --version` errors out sensibly when 0.12 isn't installed.

master
Jordan Harband 2015-02-01 13:02:46 -08:00
parent e1b7496cf0
commit 0b4c1e14cf
2 changed files with 17 additions and 4 deletions

12
nvm.sh
View File

@ -1271,7 +1271,7 @@ nvm() {
provided_version=$1
if [ -n "$provided_version" ]; then
VERSION="$(nvm_version "$provided_version")"
if [ "_$VERSION" = "_N/A" ]; then
if [ "_$VERSION" = "_N/A" ] && ! nvm_is_valid_version "$provided_version"; then
provided_version=''
if [ $has_checked_nvmrc -ne 1 ]; then
nvm_rc_version && has_checked_nvmrc=1
@ -1290,16 +1290,20 @@ nvm() {
local ARGS
ARGS="$@"
local OUTPUT
local EXIT_CODE
if [ "$NVM_IOJS" = true ]; then
if [ "_$VERSION" = "_N/A" ]; then
echo "$(nvm_ensure_version_prefix "$provided_version") is not installed yet" >&2
EXIT_CODE=1
elif [ "$NVM_IOJS" = true ]; then
echo "Running io.js $(nvm_strip_iojs_prefix "$VERSION")"
OUTPUT="$(nvm use "$VERSION" >/dev/null && iojs "$ARGS")"
EXIT_CODE="$?"
else
echo "Running node $VERSION"
OUTPUT="$(nvm use "$VERSION" >/dev/null && node "$ARGS")"
EXIT_CODE="$?"
fi
local EXIT_CODE
EXIT_CODE="$?"
if [ -n "$OUTPUT" ]; then
echo "$OUTPUT"
fi

View File

@ -0,0 +1,9 @@
#!/bin/sh
die () { echo $@ ; exit 1; }
. ../../../nvm.sh
[ "$(nvm run 0.2 --version 2>&1)" = "v0.2 is not installed yet" ] || die "\`nvm run\` with an uninstalled node version failed to error out correctly"
[ "$(nvm run iojs-0.2 --version 2>&1)" = "iojs-v0.2 is not installed yet" ] || die "\`nvm run\` with an uninstalled iojs version failed to error out correctly"