[Fix] nvm exec: Do a version check on nvm-exec

This check would display a message in case the `.nvmrc` version is not installed, and would not alter the output otherwise.
This commit is contained in:
Bark
2024-03-06 16:03:10 +02:00
committed by Jordan Harband
parent 0fbe3a6776
commit 01a8749d7f
3 changed files with 30 additions and 7 deletions

View File

@@ -9,9 +9,12 @@ unset NVM_CD_FLAGS
if [ -n "$NODE_VERSION" ]; then if [ -n "$NODE_VERSION" ]; then
nvm use "$NODE_VERSION" > /dev/null || exit 127 nvm use "$NODE_VERSION" > /dev/null || exit 127
elif ! nvm use >/dev/null 2>&1; then else
echo "No NODE_VERSION provided; no .nvmrc file found" >&2 nvm_rc_version > /dev/null && nvm_ensure_version_installed "$NVM_RC_VERSION";
exit 127 if ! nvm use >/dev/null 2>&1; then
echo "No NODE_VERSION provided; no .nvmrc file found" >&2
exit 127
fi
fi fi
exec "$@" exec "$@"

View File

@@ -0,0 +1,20 @@
#!/bin/bash
set -x
\. ../../nvm.sh
die () { echo "$@" ; rm .nvmrc ; exit 1; }
NVM_TEST_VERSION=v0.42
# Write it to nvmrc
echo "$NVM_TEST_VERSION" > .nvmrc
OUTPUT="$(../../nvm-exec 2>&1)";
EXPECTED="N/A: version \"${NVM_TEST_VERSION}\" is not yet installed.
You need to run \`nvm install ${NVM_TEST_VERSION}\` to install and use it.
No NODE_VERSION provided; no .nvmrc file found";
# Skip install, we want to test the error message
[ "${EXPECTED}" = "${OUTPUT}" ] || die "expected >${EXPECTED}<, got >${OUTPUT}<"

View File

@@ -2,7 +2,7 @@
\. ../../../nvm.sh \. ../../../nvm.sh
set -e #set -e #nvm use system returns 127 and No system set message
die () { die () {
# echo "$@" ; # echo "$@" ;
@@ -24,7 +24,7 @@ fi
# default system color # default system color
nvm use system nvm use system
OUTPUT=$(nvm_print_versions system) OUTPUT=$(nvm_print_versions system)
FORMAT="\033[0;32m-> %12s\033[0m" FORMAT="\033[0;33m%15s\033[0m"
VERSION='system' VERSION='system'
EXPECTED_OUTPUT=$(command printf -- "${FORMAT}\\n" "${VERSION}") EXPECTED_OUTPUT=$(command printf -- "${FORMAT}\\n" "${VERSION}")
@@ -34,7 +34,7 @@ nvm_ls_current() { echo "current";}
# default current color # default current color
OUTPUT=$(nvm_print_versions current) OUTPUT=$(nvm_print_versions current)
FORMAT="\033[0;32m-> %12s\033[0m" FORMAT="\033[0;32m->%13s\033[0m"
VERSION="current" VERSION="current"
EXPECTED_OUTPUT=$(command printf -- "${FORMAT}\\n" "${VERSION}") EXPECTED_OUTPUT=$(command printf -- "${FORMAT}\\n" "${VERSION}")
@@ -43,7 +43,7 @@ EXPECTED_OUTPUT=$(command printf -- "${FORMAT}\\n" "${VERSION}")
# custom current color # custom current color
nvm set-colors YCMGR nvm set-colors YCMGR
OUTPUT=$(nvm_print_versions current) OUTPUT=$(nvm_print_versions current)
FORMAT="\033[1;35m-> %12s\033[0m" FORMAT="\033[1;35m->%13s\033[0m"
VERSION="current" VERSION="current"
EXPECTED_OUTPUT=$(command printf -- "${FORMAT}\\n" "${VERSION}") EXPECTED_OUTPUT=$(command printf -- "${FORMAT}\\n" "${VERSION}")