Compare commits

...

5 Commits

3 changed files with 64 additions and 32 deletions

26
nvm.sh
View File

@ -128,7 +128,7 @@ 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:-} $*" eval "curl -q --fail -w %{http_code} ${CURL_COMPRESSED_FLAG:-} ${CURL_HEADER_FLAG:-} $*"
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 /' \
@ -145,7 +145,7 @@ nvm_download() {
ARGS="${ARGS} --header \"${NVM_AUTH_HEADER}\"" ARGS="${ARGS} --header \"${NVM_AUTH_HEADER}\""
fi fi
# shellcheck disable=SC2086 # shellcheck disable=SC2086
eval wget $ARGS eval wget -S $ARGS 2>&1 | grep '^ HTTP/' | awk '{print $2}'
fi fi
} }
@ -2434,12 +2434,18 @@ nvm_download_artifact() {
nvm_err "Removing the broken local cache..." nvm_err "Removing the broken local cache..."
command rm -rf "${TARBALL}" command rm -rf "${TARBALL}"
fi fi
nvm_err "Downloading ${TARBALL_URL}..." nvm_err "Downloading ${TARBALL_URL}..."
nvm_download -L -C - "${PROGRESS_BAR}" "${TARBALL_URL}" -o "${TARBALL}" || ( local NVM_DOWNLOAD_RESULT
NVM_DOWNLOAD_RESULT=$(nvm_download -L -C - "${PROGRESS_BAR}" "${TARBALL_URL}" -o "${TARBALL}")
if [ "${NVM_DEBUG-}" = 1 ]; then
nvm_err "Download HTTP Status ${NVM_DOWNLOAD_RESULT}"
fi
if [ "${NVM_DOWNLOAD_RESULT}" != '200' ]; then
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
) fi
if nvm_grep '404 Not Found' "${TARBALL}" >/dev/null; then if nvm_grep '404 Not Found' "${TARBALL}" >/dev/null; then
command rm -rf "${TARBALL}" "${tmpdir}" command rm -rf "${TARBALL}" "${tmpdir}"
@ -3558,9 +3564,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,7 +3585,8 @@ 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 nvm_use_if_needed "${VERSION}" && nvm_install_npm_if_needed "${VERSION}"; then
if [ -n "${LTS-}" ]; then if [ -n "${LTS-}" ]; then
nvm_ensure_default_set "lts/${LTS}" nvm_ensure_default_set "lts/${LTS}"
else else
@ -3595,6 +3606,7 @@ nvm() {
else else
EXIT_CODE=$? EXIT_CODE=$?
fi fi
fi
return $EXIT_CODE return $EXIT_CODE
;; ;;

View 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}<"

View File

@ -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