Compare commits

...

4 Commits

Author SHA1 Message Date
Jahir Raihan Joy
d35cb9610d
Merge 6375e4ed79dc584a8174e5816d68a1c31b6d9b27 into 0ce8f5a52fd5178b4d7e3a0780c46f46e91482fe 2024-08-23 21:02:19 -06:00
Jordan Harband
0ce8f5a52f
[Fix] nvm_download: ensure all args are quoted
Fixes #3411.
2024-08-20 22:33:38 -07:00
Jordan Harband
863bd63cfa
[Tests] set proper permissions on test files 2024-08-23 17:23:12 -07:00
Jahir Raihan Joy
6375e4ed79 converted tree path to canonical form for case-insensitive comp 2024-05-09 16:24:33 +06:00
18 changed files with 20 additions and 4 deletions

19
nvm.sh
View File

@ -128,7 +128,12 @@ nvm_download() {
if nvm_curl_use_compression; then
CURL_COMPRESSED_FLAG="--compressed"
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
# Emulate curl with wget
ARGS=$(nvm_echo "$@" | command sed -e 's/--progress-bar /--progress=bar /' \
@ -434,6 +439,7 @@ else
fi
unset NVM_SCRIPT_SOURCE 2>/dev/null
nvm_tree_contains_path() {
local tree
tree="${1-}"
@ -449,14 +455,21 @@ nvm_tree_contains_path() {
previous_pathdir="${node_path}"
local pathdir
pathdir=$(dirname "${previous_pathdir}")
# Convert tree path to canonical form for case-insensitive comparison
local tree_canonical
tree_canonical=$(cd "${tree}" && pwd -P)
while [ "${pathdir}" != '' ] && [ "${pathdir}" != '.' ] && [ "${pathdir}" != '/' ] &&
[ "${pathdir}" != "${tree}" ] && [ "${pathdir}" != "${previous_pathdir}" ]; do
[ "${pathdir}" != "${tree_canonical}" ] && [ "${pathdir}" != "${previous_pathdir}" ]; do
previous_pathdir="${pathdir}"
pathdir=$(dirname "${previous_pathdir}")
done
[ "${pathdir}" = "${tree}" ]
[ "${pathdir}" = "${tree_canonical}" ]
}
nvm_find_project_dir() {
local path_
path_="${PWD}"

View File

View File

3
test/fast/Unit tests/nvm_download Normal file → Executable file
View File

@ -25,4 +25,7 @@ NVM_AUTH_HEADER="Bearer test-token" nvm_download "http://127.0.0.1/bearer" > /de
nvm_download "http://127.0.0.1/bearer" > /dev/null && die 'nvm_download with no auth header should not send the header and should fail'
docker stop httpbin && docker rm httpbin
# ensure quoted extra args remain quoted
nvm_download "https://raw.githubusercontent.com/nvm-sh/nvm/HEAD/install.sh" -o "; die quoted-command-not-quoted" || die 'command failed'
cleanup

0
test/fast/Unit tests/nvm_install_binary_extract Normal file → Executable file
View File

0
test/fast/Unit tests/nvm_install_no_progress_bar Normal file → Executable file
View File

0
test/fast/Unit tests/nvm_is_version_installed Normal file → Executable file
View File

0
test/fast/Unit tests/nvm_write_nvmrc Normal file → Executable file
View File

View File

2
test/install_script/nvm_download Normal file → Executable file
View File

@ -12,7 +12,7 @@ nvm_download "https://raw.githubusercontent.com/nvm-sh/nvm/HEAD/install.sh" >/de
# nvm_download should fail to download wrong_install.sh
if nvm_download "https://raw.githubusercontent.com/nvm-sh/nvm/HEAD/wrong_install.sh" &>/dev/null; then
die "nvm_download should fail to download no existing file"
die "nvm_download should fail to download nonexistent file"
fi
cleanup

0
test/installation_iojs/install from source Normal file → Executable file
View File

View File

View File

View File

View File