mirror of
https://github.com/nvm-sh/nvm.git
synced 2026-04-05 04:24:52 +08:00
[Fix] nvm_download_artifact: fix error propagation from subshells
`return` inside `(...)` subshells only exits the subshell, not the calling function.
Errors in mkdir, download, and checksum verification were silently ignored.
Use `{ ...; }` brace groups instead.
Bug introduced in ba3ad8e460.
This commit is contained in:
12
nvm.sh
12
nvm.sh
@@ -2526,10 +2526,10 @@ nvm_download_artifact() {
|
||||
local CHECKSUM
|
||||
CHECKSUM="$(nvm_get_checksum "${FLAVOR}" "${TYPE}" "${VERSION}" "${SLUG}" "${COMPRESSION}")"
|
||||
|
||||
command mkdir -p "${tmpdir}/files" || (
|
||||
command mkdir -p "${tmpdir}/files" || {
|
||||
nvm_err "creating directory ${tmpdir}/files failed"
|
||||
return 3
|
||||
)
|
||||
}
|
||||
|
||||
local TARBALL_URL
|
||||
if nvm_version_greater_than_or_equal_to "${VERSION}" 0.1.14; then
|
||||
@@ -2552,11 +2552,11 @@ nvm_download_artifact() {
|
||||
command rm -rf "${TARBALL}"
|
||||
fi
|
||||
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}"
|
||||
nvm_err "download from ${TARBALL_URL} failed"
|
||||
return 4
|
||||
)
|
||||
}
|
||||
|
||||
if nvm_grep '404 Not Found' "${TARBALL}" >/dev/null; then
|
||||
command rm -rf "${TARBALL}" "${tmpdir}"
|
||||
@@ -2564,10 +2564,10 @@ nvm_download_artifact() {
|
||||
return 5
|
||||
fi
|
||||
|
||||
nvm_compare_checksum "${TARBALL}" "${CHECKSUM}" || (
|
||||
nvm_compare_checksum "${TARBALL}" "${CHECKSUM}" || {
|
||||
command rm -rf "${tmpdir}/files"
|
||||
return 6
|
||||
)
|
||||
}
|
||||
|
||||
nvm_echo "${TARBALL}"
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user