mirror of
https://github.com/nvm-sh/nvm.git
synced 2025-12-12 08:04:18 +00:00
Compare commits
10 Commits
v0.40.0
...
c80b89720f
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
c80b89720f | ||
|
|
4792d122b1 | ||
|
|
c31a867c46 | ||
|
|
a8c418558a | ||
|
|
d5e2c92a25 | ||
|
|
81f18bc445 | ||
|
|
4beab63631 | ||
|
|
14acd3dcdd | ||
|
|
271720ebfc | ||
|
|
423ee82b4c |
104
.github/workflows/nvm-install-test.yml
vendored
Normal file
104
.github/workflows/nvm-install-test.yml
vendored
Normal file
@@ -0,0 +1,104 @@
|
|||||||
|
name: 'Tests: nvm install with set -e'
|
||||||
|
|
||||||
|
on:
|
||||||
|
pull_request:
|
||||||
|
push:
|
||||||
|
workflow_dispatch:
|
||||||
|
inputs:
|
||||||
|
ref:
|
||||||
|
description: 'git ref to use'
|
||||||
|
required: false
|
||||||
|
default: 'HEAD'
|
||||||
|
|
||||||
|
jobs:
|
||||||
|
matrix:
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
outputs:
|
||||||
|
matrix: ${{ steps.matrix.outputs.matrix }}
|
||||||
|
steps:
|
||||||
|
- uses: actions/checkout@v4
|
||||||
|
with:
|
||||||
|
fetch-depth: 0
|
||||||
|
- id: matrix
|
||||||
|
run: |
|
||||||
|
if [ "${{ github.event_name }}" == "workflow_dispatch" ] && [ -n "${{ github.event.inputs.ref }}" ]; then
|
||||||
|
echo "matrix=\"[\"${{ github.event.inputs.ref }}\"]\"" >> $GITHUB_OUTPUT
|
||||||
|
else
|
||||||
|
TAGS="$((echo "HEAD" && git tag --sort=-v:refname --merged HEAD --format='%(refname:strip=2) %(creatordate:short)' | grep '^v' | while read tag date; do
|
||||||
|
if [ "$(uname)" == "Darwin" ]; then
|
||||||
|
timestamp=$(date -j -f "%Y-%m-%d" "$date" +%s)
|
||||||
|
threshold=$(date -j -v-4y +%s)
|
||||||
|
else
|
||||||
|
timestamp=$(date -d "$date" +%s)
|
||||||
|
threshold=$(date -d "4 years ago" +%s)
|
||||||
|
fi
|
||||||
|
if [ $timestamp -ge $threshold ]; then echo "$tag"; fi
|
||||||
|
done) | xargs)"
|
||||||
|
echo $TAGS
|
||||||
|
TAGS_JSON=$(printf "%s\n" $TAGS | jq -R . | jq -sc .)
|
||||||
|
echo "matrix=${TAGS_JSON}" >> $GITHUB_OUTPUT
|
||||||
|
fi
|
||||||
|
|
||||||
|
test:
|
||||||
|
needs: [matrix]
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
continue-on-error: ${{ matrix.ref == 'v0.40.0' }} # https://github.com/nvm-sh/nvm/issues/3405
|
||||||
|
strategy:
|
||||||
|
fail-fast: false
|
||||||
|
matrix:
|
||||||
|
ref: ${{ fromJson(needs.matrix.outputs.matrix) }}
|
||||||
|
has-nvmrc:
|
||||||
|
- 'no nvmrc'
|
||||||
|
- 'nvmrc'
|
||||||
|
shell-level:
|
||||||
|
- 1 shlvl
|
||||||
|
- 2 shlvls
|
||||||
|
|
||||||
|
steps:
|
||||||
|
- uses: actions/checkout@v4
|
||||||
|
- name: resolve HEAD to sha
|
||||||
|
run: |
|
||||||
|
if [ '${{ matrix.ref }}' = 'HEAD' ]; then
|
||||||
|
REF="$(git rev-parse HEAD)"
|
||||||
|
else
|
||||||
|
REF="${{ matrix.ref }}"
|
||||||
|
fi
|
||||||
|
echo "resolved ref: ${REF}"
|
||||||
|
echo "ref="$REF"" >> $GITHUB_ENV
|
||||||
|
- run: echo $- # which options are set
|
||||||
|
- run: echo node > .nvmrc
|
||||||
|
if: ${{ matrix.has-nvmrc == 'nvmrc' }}
|
||||||
|
- run: curl -I --compressed -v https://nodejs.org/dist/
|
||||||
|
- name: 'install nvm'
|
||||||
|
run: |
|
||||||
|
set -e
|
||||||
|
export NVM_INSTALL_VERSION="${ref}"
|
||||||
|
curl -o- "https://raw.githubusercontent.com/nvm-sh/nvm/${ref}/install.sh" | bash
|
||||||
|
- name: nvm --version
|
||||||
|
run: |
|
||||||
|
set +e
|
||||||
|
. $NVM_DIR/nvm.sh && nvm --version
|
||||||
|
- name: nvm install in 1 shell level, ${{ matrix.has-nvmrc }}
|
||||||
|
if: ${{ matrix.shell-level == '1 shlvl' }}
|
||||||
|
run: |
|
||||||
|
set -ex
|
||||||
|
. $NVM_DIR/nvm.sh
|
||||||
|
echo nvm.sh sourced
|
||||||
|
nvm --version
|
||||||
|
if [ '${{ matrix.has-nvmrc }}' == 'nvmrc' ]; then
|
||||||
|
nvm install
|
||||||
|
fi
|
||||||
|
- name: nvm install in 2 shell levels, ${{ matrix.has-nvmrc }}
|
||||||
|
if: ${{ matrix.shell-level == '2 shlvls' }}
|
||||||
|
run: |
|
||||||
|
if [ '${{ matrix.has-nvmrc }}' == 'nvmrc' ]; then
|
||||||
|
bash -c "set -ex && . $NVM_DIR/nvm.sh && echo nvm.sh sourced && nvm --version && nvm install"
|
||||||
|
else
|
||||||
|
bash -c "set -ex && . $NVM_DIR/nvm.sh && echo nvm.sh sourced && nvm --version"
|
||||||
|
fi
|
||||||
|
|
||||||
|
finisher:
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
needs: [test]
|
||||||
|
steps:
|
||||||
|
- run: true
|
||||||
@@ -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'
|
||||||
|
|||||||
146
nvm.sh
146
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' ]
|
||||||
}
|
}
|
||||||
@@ -128,7 +128,12 @@ nvm_download() {
|
|||||||
if nvm_curl_use_compression; then
|
if nvm_curl_use_compression; then
|
||||||
CURL_COMPRESSED_FLAG="--compressed"
|
CURL_COMPRESSED_FLAG="--compressed"
|
||||||
fi
|
fi
|
||||||
eval "curl -q --fail ${CURL_COMPRESSED_FLAG:-} ${CURL_HEADER_FLAG:-} $*"
|
local NVM_DOWNLOAD_ARGS
|
||||||
|
NVM_DOWNLOAD_ARGS=''
|
||||||
|
for arg in "$@"; do
|
||||||
|
NVM_DOWNLOAD_ARGS="${NVM_DOWNLOAD_ARGS} \"$arg\""
|
||||||
|
done
|
||||||
|
eval "curl -q --fail ${CURL_COMPRESSED_FLAG:-} ${CURL_HEADER_FLAG:-} ${NVM_DOWNLOAD_ARGS}"
|
||||||
elif nvm_has "wget"; then
|
elif nvm_has "wget"; then
|
||||||
# Emulate curl with wget
|
# Emulate curl with wget
|
||||||
ARGS=$(nvm_echo "$@" | command sed -e 's/--progress-bar /--progress=bar /' \
|
ARGS=$(nvm_echo "$@" | command sed -e 's/--progress-bar /--progress=bar /' \
|
||||||
@@ -503,9 +508,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 +520,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
|
||||||
@@ -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
|
||||||
)
|
)
|
||||||
|
|
||||||
@@ -3356,6 +3365,10 @@ nvm() {
|
|||||||
shift
|
shift
|
||||||
;;
|
;;
|
||||||
--save | -w)
|
--save | -w)
|
||||||
|
if [ $NVM_WRITE_TO_NVMRC -eq 1 ]; then
|
||||||
|
nvm_err '--save and -w may only be provided once'
|
||||||
|
return 6
|
||||||
|
fi
|
||||||
NVM_WRITE_TO_NVMRC=1
|
NVM_WRITE_TO_NVMRC=1
|
||||||
shift
|
shift
|
||||||
;;
|
;;
|
||||||
@@ -3507,6 +3520,11 @@ nvm() {
|
|||||||
nvm_ensure_default_set "${provided_version}"
|
nvm_ensure_default_set "${provided_version}"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
if [ $NVM_WRITE_TO_NVMRC -eq 1 ]; then
|
||||||
|
nvm_write_nvmrc "${VERSION}"
|
||||||
|
EXIT_CODE=$?
|
||||||
|
fi
|
||||||
|
|
||||||
if [ $EXIT_CODE -ne 0 ] && [ -n "${ALIAS-}" ]; then
|
if [ $EXIT_CODE -ne 0 ] && [ -n "${ALIAS-}" ]; then
|
||||||
nvm alias "${ALIAS}" "${provided_version}"
|
nvm alias "${ALIAS}" "${provided_version}"
|
||||||
EXIT_CODE=$?
|
EXIT_CODE=$?
|
||||||
@@ -3558,9 +3576,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 +3597,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
|
||||||
@@ -3736,6 +3760,8 @@ nvm() {
|
|||||||
local NVM_LTS
|
local NVM_LTS
|
||||||
local IS_VERSION_FROM_NVMRC
|
local IS_VERSION_FROM_NVMRC
|
||||||
IS_VERSION_FROM_NVMRC=0
|
IS_VERSION_FROM_NVMRC=0
|
||||||
|
local NVM_WRITE_TO_NVMRC
|
||||||
|
NVM_WRITE_TO_NVMRC=0
|
||||||
|
|
||||||
while [ $# -ne 0 ]; do
|
while [ $# -ne 0 ]; do
|
||||||
case "$1" in
|
case "$1" in
|
||||||
@@ -3747,7 +3773,13 @@ nvm() {
|
|||||||
--) ;;
|
--) ;;
|
||||||
--lts) NVM_LTS='*' ;;
|
--lts) NVM_LTS='*' ;;
|
||||||
--lts=*) NVM_LTS="${1##--lts=}" ;;
|
--lts=*) NVM_LTS="${1##--lts=}" ;;
|
||||||
--save | -w) NVM_WRITE_TO_NVMRC=1 ;;
|
--save | -w)
|
||||||
|
if [ $NVM_WRITE_TO_NVMRC -eq 1 ]; then
|
||||||
|
nvm_err '--save and -w may only be provided once'
|
||||||
|
return 6
|
||||||
|
fi
|
||||||
|
NVM_WRITE_TO_NVMRC=1
|
||||||
|
;;
|
||||||
--*) ;;
|
--*) ;;
|
||||||
*)
|
*)
|
||||||
if [ -n "${1-}" ]; then
|
if [ -n "${1-}" ]; then
|
||||||
@@ -3781,8 +3813,8 @@ nvm() {
|
|||||||
return 127
|
return 127
|
||||||
fi
|
fi
|
||||||
|
|
||||||
if [ "${NVM_WRITE_TO_NVMRC:-0}" -eq 1 ]; then
|
if [ $NVM_WRITE_TO_NVMRC -eq 1 ]; then
|
||||||
nvm_write_nvmrc "$VERSION"
|
nvm_write_nvmrc "${VERSION}"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
if [ "_${VERSION}" = '_system' ]; then
|
if [ "_${VERSION}" = '_system' ]; then
|
||||||
@@ -3800,7 +3832,7 @@ nvm() {
|
|||||||
nvm_err 'System version of node not found.'
|
nvm_err 'System version of node not found.'
|
||||||
fi
|
fi
|
||||||
return 127
|
return 127
|
||||||
elif [ "_${VERSION}" = "_∞" ]; then
|
elif [ "_${VERSION}" = '_∞' ]; then
|
||||||
if [ "${NVM_SILENT:-0}" -ne 1 ]; then
|
if [ "${NVM_SILENT:-0}" -ne 1 ]; then
|
||||||
nvm_err "The alias \"${PROVIDED_VERSION}\" leads to an infinite loop. Aborting."
|
nvm_err "The alias \"${PROVIDED_VERSION}\" leads to an infinite loop. Aborting."
|
||||||
fi
|
fi
|
||||||
@@ -4529,31 +4561,41 @@ nvm_supports_xz() {
|
|||||||
nvm_auto() {
|
nvm_auto() {
|
||||||
local NVM_MODE
|
local NVM_MODE
|
||||||
NVM_MODE="${1-}"
|
NVM_MODE="${1-}"
|
||||||
local VERSION
|
|
||||||
local NVM_CURRENT
|
case "${NVM_MODE}" in
|
||||||
if [ "_${NVM_MODE}" = '_install' ]; then
|
none) return 0 ;;
|
||||||
VERSION="$(nvm_alias default 2>/dev/null || nvm_echo)"
|
use | install)
|
||||||
if [ -n "${VERSION}" ] && ! [ "_${VERSION}" = '_N/A' ] && nvm_is_valid_version "${VERSION}"; then
|
local VERSION
|
||||||
nvm install "${VERSION}" >/dev/null
|
local NVM_CURRENT
|
||||||
elif nvm_rc_version >/dev/null 2>&1; then
|
NVM_CURRENT="$(nvm_ls_current)"
|
||||||
nvm install >/dev/null
|
if [ "_${NVM_CURRENT}" = '_none' ] || [ "_${NVM_CURRENT}" = '_system' ]; then
|
||||||
fi
|
VERSION="$(nvm_resolve_local_alias default 2>/dev/null || nvm_echo)"
|
||||||
elif [ "_$NVM_MODE" = '_use' ]; then
|
if [ -n "${VERSION}" ]; then
|
||||||
NVM_CURRENT="$(nvm_ls_current)"
|
if [ "_${VERSION}" != '_N/A' ] && nvm_is_valid_version "${VERSION}"; then
|
||||||
if [ "_${NVM_CURRENT}" = '_none' ] || [ "_${NVM_CURRENT}" = '_system' ]; then
|
if [ "_${NVM_MODE}" = '_install' ]; then
|
||||||
VERSION="$(nvm_resolve_local_alias default 2>/dev/null || nvm_echo)"
|
nvm install "${VERSION}" >/dev/null
|
||||||
if [ -n "${VERSION}" ] && ! [ "_${VERSION}" = '_N/A' ] && nvm_is_valid_version "${VERSION}"; then
|
else
|
||||||
nvm use --silent "${VERSION}" >/dev/null
|
nvm use --silent "${VERSION}" >/dev/null
|
||||||
elif nvm_rc_version >/dev/null 2>&1; then
|
fi
|
||||||
nvm use --silent >/dev/null
|
else
|
||||||
|
return 0
|
||||||
|
fi
|
||||||
|
elif nvm_rc_version >/dev/null 2>&1; then
|
||||||
|
if [ "_${NVM_MODE}" = '_install' ]; then
|
||||||
|
nvm install >/dev/null
|
||||||
|
else
|
||||||
|
nvm use --silent >/dev/null
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
else
|
||||||
|
nvm use --silent "${NVM_CURRENT}" >/dev/null
|
||||||
fi
|
fi
|
||||||
else
|
;;
|
||||||
nvm use --silent "${NVM_CURRENT}" >/dev/null
|
*)
|
||||||
fi
|
nvm_err 'Invalid auto mode supplied.'
|
||||||
elif [ "_${NVM_MODE}" != '_none' ]; then
|
return 1
|
||||||
nvm_err 'Invalid auto mode supplied.'
|
;;
|
||||||
return 1
|
esac
|
||||||
fi
|
|
||||||
}
|
}
|
||||||
|
|
||||||
nvm_process_parameters() {
|
nvm_process_parameters() {
|
||||||
|
|||||||
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
|
||||||
|
|||||||
@@ -15,4 +15,6 @@ if nvm_download "https://raw.githubusercontent.com/nvm-sh/nvm/HEAD/wrong_install
|
|||||||
die "nvm_download should fail to download no existing file"
|
die "nvm_download should fail to download no existing file"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
nvm_download "https://raw.githubusercontent.com/nvm-sh/nvm/HEAD/install.sh" -o "; die quoted-command-not-quoted"
|
||||||
|
|
||||||
cleanup
|
cleanup
|
||||||
|
|||||||
Reference in New Issue
Block a user