mirror of
https://github.com/nvm-sh/nvm.git
synced 2025-12-11 07:40:53 +00:00
Compare commits
5 Commits
travis3
...
49372e44b4
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
49372e44b4 | ||
|
|
da2720a429 | ||
|
|
9fb9dec710 | ||
|
|
27dea683a5 | ||
|
|
c0e6d8f332 |
26
nvm.sh
26
nvm.sh
@@ -691,6 +691,11 @@ nvm_ensure_version_installed() {
|
||||
LOCAL_VERSION="$(nvm_version "${PROVIDED_VERSION}")"
|
||||
EXIT_CODE="$?"
|
||||
local NVM_VERSION_DIR
|
||||
|
||||
if [ "_$PROVIDED_VERSION" = "_N/A" ] && [ ! -d "$NVM_RC_VERSION" ] ; then
|
||||
PROVIDED_VERSION="$(nvm_ensure_version_prefix "$NVM_RC_VERSION")"
|
||||
fi
|
||||
|
||||
if [ "${EXIT_CODE}" != "0" ] || ! nvm_is_version_installed "${LOCAL_VERSION}"; then
|
||||
if VERSION="$(nvm_resolve_alias "${PROVIDED_VERSION}")"; then
|
||||
nvm_err "N/A: version \"${PROVIDED_VERSION} -> ${VERSION}\" is not yet installed."
|
||||
@@ -891,6 +896,10 @@ nvm_normalize_lts() {
|
||||
fi
|
||||
;;
|
||||
*)
|
||||
if [ "${LTS}" != "$(echo "${LTS}" | command tr '[:upper:]' '[:lower:]')" ]; then
|
||||
nvm_err 'LTS names must be lowercase'
|
||||
return 3
|
||||
fi
|
||||
nvm_echo "${LTS}"
|
||||
;;
|
||||
esac
|
||||
@@ -1249,7 +1258,9 @@ nvm_alias() {
|
||||
nvm_err 'An alias is required.'
|
||||
return 1
|
||||
fi
|
||||
ALIAS="$(nvm_normalize_lts "${ALIAS}")"
|
||||
if ! ALIAS="$(nvm_normalize_lts "${ALIAS}")"; then
|
||||
return $?
|
||||
fi
|
||||
|
||||
if [ -z "${ALIAS}" ]; then
|
||||
return 2
|
||||
@@ -1652,7 +1663,9 @@ $VERSION_LIST
|
||||
EOF
|
||||
|
||||
if [ -n "${LTS-}" ]; then
|
||||
LTS="$(nvm_normalize_lts "lts/${LTS}")"
|
||||
if ! LTS="$(nvm_normalize_lts "lts/${LTS}")"; then
|
||||
return $?
|
||||
fi
|
||||
LTS="${LTS#lts/}"
|
||||
fi
|
||||
|
||||
@@ -3417,9 +3430,11 @@ nvm() {
|
||||
;;
|
||||
esac
|
||||
|
||||
local EXIT_CODE
|
||||
VERSION="$(NVM_VERSION_ONLY=true NVM_LTS="${LTS-}" nvm_remote_version "${provided_version}")"
|
||||
EXIT_CODE="$?"
|
||||
|
||||
if [ "${VERSION}" = 'N/A' ]; then
|
||||
if [ "${VERSION}" = 'N/A' ] || [ $EXIT_CODE -ne 0 ]; then
|
||||
local LTS_MSG
|
||||
local REMOTE_CMD
|
||||
if [ "${LTS-}" = '*' ]; then
|
||||
@@ -3428,6 +3443,10 @@ nvm() {
|
||||
elif [ -n "${LTS-}" ]; then
|
||||
LTS_MSG="(with LTS filter '${LTS}') "
|
||||
REMOTE_CMD="nvm ls-remote --lts=${LTS}"
|
||||
if [ -z "${provided_version}" ]; then
|
||||
nvm_err "Version with LTS filter '${LTS}' not found - try \`${REMOTE_CMD}\` to browse available versions."
|
||||
return 3
|
||||
fi
|
||||
else
|
||||
REMOTE_CMD='nvm ls-remote'
|
||||
fi
|
||||
@@ -3492,7 +3511,6 @@ nvm() {
|
||||
FLAVOR="$(nvm_node_prefix)"
|
||||
fi
|
||||
|
||||
local EXIT_CODE
|
||||
EXIT_CODE=0
|
||||
|
||||
if nvm_is_version_installed "${VERSION}"; then
|
||||
|
||||
35
test/fast/Unit tests/nvm install with nonlowercase LTS name
Executable file
35
test/fast/Unit tests/nvm install with nonlowercase LTS name
Executable file
@@ -0,0 +1,35 @@
|
||||
#!/bin/sh
|
||||
|
||||
die () { echo "$@" ; exit 1; }
|
||||
|
||||
\. ../../../nvm.sh
|
||||
|
||||
REMOTE="${PWD}/mocks/nvm_ls_remote.txt"
|
||||
REMOTE_IOJS="${PWD}/mocks/nvm_ls_remote_iojs.txt"
|
||||
|
||||
nvm_download() {
|
||||
if [ "$*" = "-L -s $(nvm_get_mirror node std)/index.tab -o -" ]; then
|
||||
cat "${REMOTE}"
|
||||
elif [ "$*" = "-L -s $(nvm_get_mirror iojs)/index.tab -o -" ]; then
|
||||
cat "${REMOTE_IOJS}"
|
||||
else
|
||||
nvm_err "unknown nvm_download call: $*"
|
||||
return 42
|
||||
fi
|
||||
}
|
||||
|
||||
nvm_install_binary() {
|
||||
return 42
|
||||
}
|
||||
nvm_install_source() {
|
||||
return 42
|
||||
}
|
||||
|
||||
ACTUAL="$(nvm install lts/ARGON 2>&1)"
|
||||
EXIT_CODE=$?
|
||||
[ $EXIT_CODE -eq 3 ] || die "Expected exit code of 3, got ${EXIT_CODE}"
|
||||
|
||||
EXPECTED="LTS names must be lowercase
|
||||
Version with LTS filter 'ARGON' not found - try \`nvm ls-remote --lts=ARGON\` to browse available versions."
|
||||
|
||||
[ "${ACTUAL}" = "${EXPECTED}" ] || die "Expected >${EXPECTED}<, got >${ACTUAL}<"
|
||||
@@ -1,7 +1,5 @@
|
||||
#!/bin/sh
|
||||
|
||||
set -e
|
||||
|
||||
die () { echo "$@" ; cleanup ; exit 1; }
|
||||
|
||||
cleanup() {
|
||||
@@ -56,6 +54,14 @@ printf '%s\n' "${LTS_LIST}" | while IFS= read -r LTS; do
|
||||
INDEX=$(($INDEX + 1))
|
||||
done
|
||||
|
||||
OUTPUT="$(nvm ls-remote lts/ARGON 2>&1)"
|
||||
EXIT_CODE=$?
|
||||
[ $EXIT_CODE -eq 3 ] || die "nvm ls-remote lts/ARGON did not exit 3, got '${EXIT_CODE}'"
|
||||
|
||||
EXPECTED_OUTPUT="LTS names must be lowercase
|
||||
N/A"
|
||||
[ "_${OUTPUT}" = "_${EXPECTED_OUTPUT}" ] || die "nvm ls-remote lts/ARGON did not output expected error message; got >${OUTPUT}< expected >${EXPECTED_OUTPUT}<"
|
||||
|
||||
REMOTE="${PWD}/mocks/nvm_ls_remote.txt"
|
||||
nvm_ls_remote() {
|
||||
cat "${REMOTE}"
|
||||
|
||||
@@ -6,7 +6,7 @@ cleanup () {
|
||||
nvm cache clear
|
||||
nvm deactivate
|
||||
rm -rf ${NVM_DIR}/v*
|
||||
nvm unalias default
|
||||
nvm unalias default || true
|
||||
}
|
||||
|
||||
die () { >&2 echo "$@" ; cleanup ; exit 1; }
|
||||
|
||||
@@ -16,6 +16,9 @@ ACTUAL="$(nvm_normalize_lts "lts/*")"
|
||||
EXPECTED='lts/*'
|
||||
[ "${ACTUAL}" = "${EXPECTED}" ] || die "expected >${EXPECTED}<, got >${ACTUAL}<"
|
||||
|
||||
if ACTUAL="$(nvm_normalize_lts lts/ARGON)"; then
|
||||
die "expected failure, got >${ACTUAL}<"
|
||||
fi
|
||||
|
||||
MOCKS_DIR="../Unit tests/mocks"
|
||||
STAR="$(cat "$MOCKS_DIR/lts-star.txt")"
|
||||
|
||||
@@ -9,20 +9,20 @@ die () { echo "$@" ; exit 1; }
|
||||
nvm unalias default >/dev/null 2>&1 || die 'unable to unalias default'
|
||||
|
||||
set +ex # needed for stderr
|
||||
OUTPUT="$(nvm install --lts 3 2>&1)"
|
||||
OUTPUT="$(nvm install --lts 0.12 2>&1)"
|
||||
EXIT_CODE="$?"
|
||||
set -ex
|
||||
EXIT_CODE="$(nvm install --lts 3 >/dev/null 2>&1 && echo $? || echo $?)"
|
||||
EXPECTED_OUTPUT="Version '3' (with LTS filter) not found - try \`nvm ls-remote --lts\` to browse available versions."
|
||||
[ "${EXIT_CODE}" = 3 ] || die "\`nvm install --lts 3\` did not exit with 3, got >${EXIT_CODE}<"
|
||||
EXPECTED_OUTPUT="Version '0.12' (with LTS filter) not found - try \`nvm ls-remote --lts\` to browse available versions."
|
||||
[ "${EXIT_CODE}" = 3 ] || die "\`nvm install --lts 0.12\` did not exit with 3, got >${EXIT_CODE}<"
|
||||
[ "${OUTPUT}" = "${EXPECTED_OUTPUT}" ] || die "\`nvm install --lts 3\` output >${OUTPUT}<, expected >${EXPECTED_OUTPUT}<"
|
||||
|
||||
set +ex # needed for stderr
|
||||
OUTPUT="$(nvm install --lts=argon 3 2>&1)"
|
||||
set -ex
|
||||
EXIT_CODE="$(nvm install --lts=argon 3 >/dev/null 2>&1 && echo $? || echo $?)"
|
||||
EXPECTED_OUTPUT="Version '3' (with LTS filter 'argon') not found - try \`nvm ls-remote --lts=argon\` to browse available versions."
|
||||
[ "${EXIT_CODE}" = 3 ] || die "\`nvm install --lts=argon 3\` did not exit with 3, got >${EXIT_CODE}<"
|
||||
[ "${OUTPUT}" = "${EXPECTED_OUTPUT}" ] || die "\`nvm install --lts=argon 3\` output >${OUTPUT}<, expected >${EXPECTED_OUTPUT}<"
|
||||
OUTPUT="$(nvm install --lts=argon 0.12 2>&1)"
|
||||
EXIT_CODE="$?"
|
||||
set -x
|
||||
EXPECTED_OUTPUT="Version '0.12' (with LTS filter 'argon') not found - try \`nvm ls-remote --lts=argon\` to browse available versions."
|
||||
[ "${EXIT_CODE}" = 3 ] || die "\`nvm install --lts=argon 0.12\` did not exit with 3, got >${EXIT_CODE}<"
|
||||
[ "${OUTPUT}" = "${EXPECTED_OUTPUT}" ] || die "\`nvm install --lts=argon 0.12\` output >${OUTPUT}<, expected >${EXPECTED_OUTPUT}<"
|
||||
|
||||
nvm install --lts 4.2.2 || die 'nvm install --lts 4.2.2 failed'
|
||||
|
||||
|
||||
@@ -0,0 +1,23 @@
|
||||
#!/bin/sh
|
||||
|
||||
set -ex
|
||||
|
||||
die () { echo $@ ; exit 1; }
|
||||
|
||||
. ../../../nvm.sh
|
||||
|
||||
echo "v0.10.28" > .nvmrc
|
||||
OUTPUT="$(nvm use 2>&1 >/dev/null | awk 'NR==1')"
|
||||
EXPECTED_OUTPUT='N/A: version "v0.10.28" is not yet installed.'
|
||||
TESTTT="$(nvm use 2>&1 >/dev/null)"
|
||||
TESTT="$(nvm use 2>&1)"
|
||||
TEST="$(nvm use)"
|
||||
|
||||
[ "_$OUTPUT" = "_$EXPECTED_OUTPUT" ] \
|
||||
|| die "'nvm use' did not output: '$EXPECTED_OUTPUT'; got: '$OUTPUT'; Normal: $TEST; with 2>&1: $TESTT; with /null: $TESTTT"
|
||||
|
||||
OUTPUT="$(nvm use 2>&1 >/dev/null | awk 'NR==3')"
|
||||
EXPECTED_OUTPUT='You need to run "nvm install v0.10.28" to install it before using it.'
|
||||
|
||||
[ "_$OUTPUT" = "_$EXPECTED_OUTPUT" ] \
|
||||
|| die "'nvm use' did not output: '$EXPECTED_OUTPUT'; got: '$OUTPUT'"
|
||||
@@ -19,5 +19,9 @@ for VERSION in "1.0.0" "1.0.1"; do
|
||||
nvm install "iojs-v$VERSION"
|
||||
done
|
||||
|
||||
if [ -f ".nvmrc" ]; then
|
||||
mv .nvmrc .nvmrc.bak
|
||||
fi
|
||||
|
||||
nvm_make_alias lts/testing 0.10.1
|
||||
nvm_make_alias 'lts/*' lts/testing
|
||||
|
||||
@@ -20,3 +20,9 @@ if [ -d "${NVM_DIR}/.nvm_use_lts_alias_bak" ]; then
|
||||
mv "${NVM_DIR}/.nvm_use_lts_alias_bak/*" "${NVM_DIR}/alias/lts/"
|
||||
rmdir "${NVM_DIR}/.nvm_use_lts_alias_bak"
|
||||
fi
|
||||
|
||||
rm .nvmrc
|
||||
|
||||
if [ -f ".nvmrc.bak" ]; then
|
||||
mv .nvmrc.bak .nvmrc
|
||||
fi
|
||||
|
||||
Reference in New Issue
Block a user