mirror of
https://github.com/nvm-sh/nvm.git
synced 2025-12-14 09:04:19 +00:00
Compare commits
9 Commits
v0.40.0
...
6abebdc64c
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
6abebdc64c | ||
|
|
d5e2c92a25 | ||
|
|
81f18bc445 | ||
|
|
4beab63631 | ||
|
|
14acd3dcdd | ||
|
|
271720ebfc | ||
|
|
423ee82b4c | ||
|
|
27dea683a5 | ||
|
|
c0e6d8f332 |
@@ -358,7 +358,7 @@ nvm_check_global_modules() {
|
|||||||
command printf %s\\n "$NPM_GLOBAL_MODULES"
|
command printf %s\\n "$NPM_GLOBAL_MODULES"
|
||||||
nvm_echo '=> If you wish to uninstall them at a later point (or re-install them under your'
|
nvm_echo '=> If you wish to uninstall them at a later point (or re-install them under your'
|
||||||
# shellcheck disable=SC2016
|
# shellcheck disable=SC2016
|
||||||
nvm_echo '=> `nvm` Nodes), you can remove them from the system Node as follows:'
|
nvm_echo '=> `nvm` node installs), you can remove them from the system Node as follows:'
|
||||||
nvm_echo
|
nvm_echo
|
||||||
nvm_echo ' $ nvm use system'
|
nvm_echo ' $ nvm use system'
|
||||||
nvm_echo ' $ npm uninstall -g a_module'
|
nvm_echo ' $ npm uninstall -g a_module'
|
||||||
|
|||||||
61
nvm.sh
61
nvm.sh
@@ -81,7 +81,7 @@ nvm_command_info() {
|
|||||||
nvm_has_colors() {
|
nvm_has_colors() {
|
||||||
local NVM_NUM_COLORS
|
local NVM_NUM_COLORS
|
||||||
if nvm_has tput; then
|
if nvm_has tput; then
|
||||||
NVM_NUM_COLORS="$(tput -T "${TERM:-vt100}" colors)"
|
NVM_NUM_COLORS="$(command tput -T "${TERM:-vt100}" colors)"
|
||||||
fi
|
fi
|
||||||
[ "${NVM_NUM_COLORS:--1}" -ge 8 ] && [ "${NVM_NO_COLORS-}" != '--no-colors' ]
|
[ "${NVM_NUM_COLORS:--1}" -ge 8 ] && [ "${NVM_NO_COLORS-}" != '--no-colors' ]
|
||||||
}
|
}
|
||||||
@@ -503,9 +503,9 @@ $(nvm_wrap_with_color_code 'y' "${warn_text}")"
|
|||||||
}
|
}
|
||||||
|
|
||||||
nvm_process_nvmrc() {
|
nvm_process_nvmrc() {
|
||||||
local NVMRC_PATH="$1"
|
local NVMRC_PATH
|
||||||
|
NVMRC_PATH="$1"
|
||||||
local lines
|
local lines
|
||||||
local unpaired_line
|
|
||||||
|
|
||||||
lines=$(command sed 's/#.*//' "$NVMRC_PATH" | command sed 's/^[[:space:]]*//;s/[[:space:]]*$//' | nvm_grep -v '^$')
|
lines=$(command sed 's/#.*//' "$NVMRC_PATH" | command sed 's/^[[:space:]]*//;s/[[:space:]]*$//' | nvm_grep -v '^$')
|
||||||
|
|
||||||
@@ -515,8 +515,12 @@ nvm_process_nvmrc() {
|
|||||||
fi
|
fi
|
||||||
|
|
||||||
# Initialize key-value storage
|
# Initialize key-value storage
|
||||||
local keys=''
|
local keys
|
||||||
local values=''
|
keys=''
|
||||||
|
local values
|
||||||
|
values=''
|
||||||
|
local unpaired_line
|
||||||
|
unpaired_line=''
|
||||||
|
|
||||||
while IFS= read -r line; do
|
while IFS= read -r line; do
|
||||||
if [ -z "${line}" ]; then
|
if [ -z "${line}" ]; then
|
||||||
@@ -682,6 +686,11 @@ nvm_ensure_version_installed() {
|
|||||||
LOCAL_VERSION="$(nvm_version "${PROVIDED_VERSION}")"
|
LOCAL_VERSION="$(nvm_version "${PROVIDED_VERSION}")"
|
||||||
EXIT_CODE="$?"
|
EXIT_CODE="$?"
|
||||||
local NVM_VERSION_DIR
|
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 [ "${EXIT_CODE}" != "0" ] || ! nvm_is_version_installed "${LOCAL_VERSION}"; then
|
||||||
if VERSION="$(nvm_resolve_alias "${PROVIDED_VERSION}")"; then
|
if VERSION="$(nvm_resolve_alias "${PROVIDED_VERSION}")"; then
|
||||||
nvm_err "N/A: version \"${PROVIDED_VERSION} -> ${VERSION}\" is not yet installed."
|
nvm_err "N/A: version \"${PROVIDED_VERSION} -> ${VERSION}\" is not yet installed."
|
||||||
@@ -2437,7 +2446,7 @@ nvm_download_artifact() {
|
|||||||
nvm_err "Downloading ${TARBALL_URL}..."
|
nvm_err "Downloading ${TARBALL_URL}..."
|
||||||
nvm_download -L -C - "${PROGRESS_BAR}" "${TARBALL_URL}" -o "${TARBALL}" || (
|
nvm_download -L -C - "${PROGRESS_BAR}" "${TARBALL_URL}" -o "${TARBALL}" || (
|
||||||
command rm -rf "${TARBALL}" "${tmpdir}"
|
command rm -rf "${TARBALL}" "${tmpdir}"
|
||||||
nvm_err "Binary download from ${TARBALL_URL} failed, trying source."
|
nvm_err "download from ${TARBALL_URL} failed"
|
||||||
return 4
|
return 4
|
||||||
)
|
)
|
||||||
|
|
||||||
@@ -3558,9 +3567,13 @@ nvm() {
|
|||||||
EXIT_CODE=$?
|
EXIT_CODE=$?
|
||||||
else
|
else
|
||||||
EXIT_CODE=-1
|
EXIT_CODE=-1
|
||||||
|
if [ $nosource -eq 1 ]; then
|
||||||
|
nvm_err "Binary download is not available for ${VERSION}"
|
||||||
|
EXIT_CODE=3
|
||||||
|
fi
|
||||||
fi
|
fi
|
||||||
|
|
||||||
if [ $EXIT_CODE -ne 0 ]; then
|
if [ $EXIT_CODE -ne 0 ] && [ $nosource -ne 1 ]; then
|
||||||
if [ -z "${NVM_MAKE_JOBS-}" ]; then
|
if [ -z "${NVM_MAKE_JOBS-}" ]; then
|
||||||
nvm_get_make_jobs
|
nvm_get_make_jobs
|
||||||
fi
|
fi
|
||||||
@@ -3575,25 +3588,27 @@ nvm() {
|
|||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
|
|
||||||
if [ $EXIT_CODE -eq 0 ] && nvm_use_if_needed "${VERSION}" && nvm_install_npm_if_needed "${VERSION}"; then
|
if [ $EXIT_CODE -eq 0 ]; then
|
||||||
if [ -n "${LTS-}" ]; then
|
if nvm_use_if_needed "${VERSION}" && nvm_install_npm_if_needed "${VERSION}"; then
|
||||||
nvm_ensure_default_set "lts/${LTS}"
|
if [ -n "${LTS-}" ]; then
|
||||||
|
nvm_ensure_default_set "lts/${LTS}"
|
||||||
|
else
|
||||||
|
nvm_ensure_default_set "${provided_version}"
|
||||||
|
fi
|
||||||
|
if [ "${NVM_UPGRADE_NPM}" = 1 ]; then
|
||||||
|
nvm install-latest-npm
|
||||||
|
EXIT_CODE=$?
|
||||||
|
fi
|
||||||
|
if [ $EXIT_CODE -eq 0 ] && [ -z "${SKIP_DEFAULT_PACKAGES-}" ]; then
|
||||||
|
nvm_install_default_packages
|
||||||
|
fi
|
||||||
|
if [ $EXIT_CODE -eq 0 ] && [ -n "${REINSTALL_PACKAGES_FROM-}" ] && [ "_${REINSTALL_PACKAGES_FROM}" != "_N/A" ]; then
|
||||||
|
nvm reinstall-packages "${REINSTALL_PACKAGES_FROM}"
|
||||||
|
EXIT_CODE=$?
|
||||||
|
fi
|
||||||
else
|
else
|
||||||
nvm_ensure_default_set "${provided_version}"
|
|
||||||
fi
|
|
||||||
if [ "${NVM_UPGRADE_NPM}" = 1 ]; then
|
|
||||||
nvm install-latest-npm
|
|
||||||
EXIT_CODE=$?
|
EXIT_CODE=$?
|
||||||
fi
|
fi
|
||||||
if [ $EXIT_CODE -eq 0 ] && [ -z "${SKIP_DEFAULT_PACKAGES-}" ]; then
|
|
||||||
nvm_install_default_packages
|
|
||||||
fi
|
|
||||||
if [ $EXIT_CODE -eq 0 ] && [ -n "${REINSTALL_PACKAGES_FROM-}" ] && [ "_${REINSTALL_PACKAGES_FROM}" != "_N/A" ]; then
|
|
||||||
nvm reinstall-packages "${REINSTALL_PACKAGES_FROM}"
|
|
||||||
EXIT_CODE=$?
|
|
||||||
fi
|
|
||||||
else
|
|
||||||
EXIT_CODE=$?
|
|
||||||
fi
|
fi
|
||||||
|
|
||||||
return $EXIT_CODE
|
return $EXIT_CODE
|
||||||
|
|||||||
20
test/fast/Unit tests/nvm install -b
Executable file
20
test/fast/Unit tests/nvm install -b
Executable file
@@ -0,0 +1,20 @@
|
|||||||
|
#!/bin/sh
|
||||||
|
|
||||||
|
die () { echo "$@" ; exit 1; }
|
||||||
|
|
||||||
|
\. ../../../nvm.sh
|
||||||
|
|
||||||
|
nvm_install_source() {
|
||||||
|
exit 42
|
||||||
|
}
|
||||||
|
|
||||||
|
VERSION="0.7.0"
|
||||||
|
|
||||||
|
EXIT_CODE=$(nvm install -b "${VERSION}" ; echo $?)
|
||||||
|
|
||||||
|
[ $EXIT_CODE -eq 3 ] || die "Expected exit code 3, got ${EXIT_CODE}"
|
||||||
|
|
||||||
|
ACTUAL="$(nvm install -b "${VERSION}" 2>&1)"
|
||||||
|
EXPECTED="Binary download is not available for v${VERSION}"
|
||||||
|
|
||||||
|
[ "${ACTUAL}" = "${EXPECTED}" ] || die "Expected >${EXPECTED}<, got >${ACTUAL}<"
|
||||||
@@ -6,14 +6,14 @@ die () { echo "$@" ; cleanup ; exit 1; }
|
|||||||
|
|
||||||
cleanup() {
|
cleanup() {
|
||||||
unset -f nvm_download nvm_ls_remote nvm_ls_remote_iojs
|
unset -f nvm_download nvm_ls_remote nvm_ls_remote_iojs
|
||||||
if [ -n TEMP_NVM_COLORS ]; then
|
if [ -n "${TEMP_NVM_COLORS-}" ]; then
|
||||||
export NVM_COLORS=TEMP_NVM_COLORS
|
export NVM_COLORS=TEMP_NVM_COLORS
|
||||||
fi
|
fi
|
||||||
unset TEMP_NVM_COLORS
|
unset TEMP_NVM_COLORS
|
||||||
}
|
}
|
||||||
|
|
||||||
\. ../../../nvm.sh
|
\. ../../../nvm.sh
|
||||||
if [ -n ${NVM_COLORS} ]; then
|
if [ -n "${NVM_COLORS-}" ]; then
|
||||||
export TEMP_NVM_COLORS=NVM_COLORS
|
export TEMP_NVM_COLORS=NVM_COLORS
|
||||||
unset NVM_COLORS
|
unset NVM_COLORS
|
||||||
fi
|
fi
|
||||||
|
|||||||
@@ -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"
|
nvm install "iojs-v$VERSION"
|
||||||
done
|
done
|
||||||
|
|
||||||
|
if [ -f ".nvmrc" ]; then
|
||||||
|
mv .nvmrc .nvmrc.bak
|
||||||
|
fi
|
||||||
|
|
||||||
nvm_make_alias lts/testing 0.10.1
|
nvm_make_alias lts/testing 0.10.1
|
||||||
nvm_make_alias 'lts/*' lts/testing
|
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/"
|
mv "${NVM_DIR}/.nvm_use_lts_alias_bak/*" "${NVM_DIR}/alias/lts/"
|
||||||
rmdir "${NVM_DIR}/.nvm_use_lts_alias_bak"
|
rmdir "${NVM_DIR}/.nvm_use_lts_alias_bak"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
rm .nvmrc
|
||||||
|
|
||||||
|
if [ -f ".nvmrc.bak" ]; then
|
||||||
|
mv .nvmrc.bak .nvmrc
|
||||||
|
fi
|
||||||
|
|||||||
Reference in New Issue
Block a user