mirror of
https://github.com/nvm-sh/nvm.git
synced 2025-08-17 19:13:43 +00:00
Compare commits
14 Commits
17081d585c
...
d23d62cf7f
Author | SHA1 | Date | |
---|---|---|---|
![]() |
d23d62cf7f | ||
![]() |
0641363102 | ||
![]() |
9659af6c16 | ||
![]() |
abd02e5aae | ||
![]() |
3de0b15810 | ||
![]() |
cd22c84026 | ||
![]() |
d648a3b1ba | ||
![]() |
8066dc8511 | ||
![]() |
59b40b8ae7 | ||
![]() |
ce777fa5cf | ||
![]() |
650b069bb8 | ||
![]() |
5a28180ed6 | ||
![]() |
05feeaa927 | ||
![]() |
e2ff1e7f08 |
2
.github/workflows/tests.yml
vendored
2
.github/workflows/tests.yml
vendored
@ -1,6 +1,6 @@
|
|||||||
name: urchin tests
|
name: urchin tests
|
||||||
|
|
||||||
on: [push]
|
on: [push, pull_request]
|
||||||
|
|
||||||
permissions:
|
permissions:
|
||||||
contents: read
|
contents: read
|
||||||
|
@ -113,3 +113,11 @@ Co-authored-by: Name Here <email@here>
|
|||||||
|
|
||||||
# Where can I ask for help?
|
# Where can I ask for help?
|
||||||
If you have any questions, please contact [@LJHarb](mailto:ljharb@gmail.com).
|
If you have any questions, please contact [@LJHarb](mailto:ljharb@gmail.com).
|
||||||
|
|
||||||
|
# Developer's Certificate of Origin 1.1
|
||||||
|
|
||||||
|
By making a contribution to this project, I certify that:
|
||||||
|
- The contribution was created in whole or in part by me and I have the right to submit it under the open source license indicated in the file; or
|
||||||
|
- The contribution is based upon previous work that, to the best of my knowledge, is covered under an appropriate open source license and I have the right under that license to submit that work with modifications, whether created in whole or in part by me, under the same open source license (unless I am permitted to submit under a different license), as indicated in the file; or
|
||||||
|
- The contribution was provided directly to me by some other person who certified (a), (b) or (c) and I have not modified it.
|
||||||
|
- I understand and agree that this project and the contribution are public and that a record of the contribution (including all personal information I submit with it, including my sign-off) is maintained indefinitely and may be redistributed consistent with this project or the open source license(s) involved.
|
||||||
|
10
install.sh
10
install.sh
@ -296,17 +296,17 @@ nvm_detect_profile() {
|
|||||||
DETECTED_PROFILE="$HOME/.bash_profile"
|
DETECTED_PROFILE="$HOME/.bash_profile"
|
||||||
fi
|
fi
|
||||||
elif [ "${SHELL#*zsh}" != "$SHELL" ]; then
|
elif [ "${SHELL#*zsh}" != "$SHELL" ]; then
|
||||||
if [ -f "$HOME/.zshrc" ]; then
|
if [ -f "${ZDOTDIR:-${HOME}}/.zshrc" ]; then
|
||||||
DETECTED_PROFILE="$HOME/.zshrc"
|
DETECTED_PROFILE="${ZDOTDIR:-${HOME}}/.zshrc"
|
||||||
elif [ -f "$HOME/.zprofile" ]; then
|
elif [ -f "${ZDOTDIR:-${HOME}}/.zprofile" ]; then
|
||||||
DETECTED_PROFILE="$HOME/.zprofile"
|
DETECTED_PROFILE="${ZDOTDIR:-${HOME}}/.zprofile"
|
||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
|
|
||||||
if [ -z "$DETECTED_PROFILE" ]; then
|
if [ -z "$DETECTED_PROFILE" ]; then
|
||||||
for EACH_PROFILE in ".profile" ".bashrc" ".bash_profile" ".zprofile" ".zshrc"
|
for EACH_PROFILE in ".profile" ".bashrc" ".bash_profile" ".zprofile" ".zshrc"
|
||||||
do
|
do
|
||||||
if DETECTED_PROFILE="$(nvm_try_profile "${HOME}/${EACH_PROFILE}")"; then
|
if DETECTED_PROFILE="$(nvm_try_profile "${ZDOTDIR:-${HOME}}/${EACH_PROFILE}")"; then
|
||||||
break
|
break
|
||||||
fi
|
fi
|
||||||
done
|
done
|
||||||
|
1
nvm-exec
1
nvm-exec
@ -7,6 +7,7 @@ unset NVM_CD_FLAGS
|
|||||||
# shellcheck disable=SC1090,SC1091
|
# shellcheck disable=SC1090,SC1091
|
||||||
\. "$DIR/nvm.sh" --no-use
|
\. "$DIR/nvm.sh" --no-use
|
||||||
|
|
||||||
|
nvm_rc_version > /dev/null && nvm_ensure_version_installed "$NVM_RC_VERSION";
|
||||||
if [ -n "$NODE_VERSION" ]; then
|
if [ -n "$NODE_VERSION" ]; then
|
||||||
nvm use "$NODE_VERSION" > /dev/null || exit 127
|
nvm use "$NODE_VERSION" > /dev/null || exit 127
|
||||||
elif ! nvm use >/dev/null 2>&1; then
|
elif ! nvm use >/dev/null 2>&1; then
|
||||||
|
19
test/fast/Running 'nvm-exec' should display required node version
Executable file
19
test/fast/Running 'nvm-exec' should display required node version
Executable file
@ -0,0 +1,19 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
set -x
|
||||||
|
\. ../../nvm.sh
|
||||||
|
|
||||||
|
NVM_TEST_VERSION=v0.42
|
||||||
|
|
||||||
|
# Write it to nvmrc
|
||||||
|
echo "$NVM_TEST_VERSION" > .nvmrc
|
||||||
|
|
||||||
|
OUTPUT="$(../../nvm-exec 2>&1)";
|
||||||
|
EXPECTED="N/A: version \"${NVM_TEST_VERSION}\" is not yet installed.
|
||||||
|
|
||||||
|
You need to run \`nvm install ${NVM_TEST_VERSION}\` to install and use it.
|
||||||
|
No NODE_VERSION provided; no .nvmrc file found";
|
||||||
|
|
||||||
|
# Skip install, we want to test the error message
|
||||||
|
diff <(echo "${EXPECTED}") <(echo "${OUTPUT}")
|
||||||
|
rm .nvmrc
|
@ -2,7 +2,7 @@
|
|||||||
|
|
||||||
\. ../../../nvm.sh
|
\. ../../../nvm.sh
|
||||||
|
|
||||||
set -e
|
#set -e #nvm use system returns 127 and No system set message
|
||||||
|
|
||||||
die () {
|
die () {
|
||||||
# echo "$@" ;
|
# echo "$@" ;
|
||||||
@ -24,7 +24,7 @@ fi
|
|||||||
# default system color
|
# default system color
|
||||||
nvm use system
|
nvm use system
|
||||||
OUTPUT=$(nvm_print_versions system)
|
OUTPUT=$(nvm_print_versions system)
|
||||||
FORMAT="\033[0;32m-> %12s\033[0m"
|
FORMAT="\033[0;33m%15s\033[0m"
|
||||||
VERSION='system'
|
VERSION='system'
|
||||||
EXPECTED_OUTPUT=$(command printf -- "${FORMAT}\\n" "${VERSION}")
|
EXPECTED_OUTPUT=$(command printf -- "${FORMAT}\\n" "${VERSION}")
|
||||||
|
|
||||||
@ -34,7 +34,7 @@ nvm_ls_current() { echo "current";}
|
|||||||
|
|
||||||
# default current color
|
# default current color
|
||||||
OUTPUT=$(nvm_print_versions current)
|
OUTPUT=$(nvm_print_versions current)
|
||||||
FORMAT="\033[0;32m-> %12s\033[0m"
|
FORMAT="\033[0;32m->%13s\033[0m"
|
||||||
VERSION="current"
|
VERSION="current"
|
||||||
EXPECTED_OUTPUT=$(command printf -- "${FORMAT}\\n" "${VERSION}")
|
EXPECTED_OUTPUT=$(command printf -- "${FORMAT}\\n" "${VERSION}")
|
||||||
|
|
||||||
@ -43,7 +43,7 @@ EXPECTED_OUTPUT=$(command printf -- "${FORMAT}\\n" "${VERSION}")
|
|||||||
# custom current color
|
# custom current color
|
||||||
nvm set-colors YCMGR
|
nvm set-colors YCMGR
|
||||||
OUTPUT=$(nvm_print_versions current)
|
OUTPUT=$(nvm_print_versions current)
|
||||||
FORMAT="\033[1;35m-> %12s\033[0m"
|
FORMAT="\033[1;35m->%13s\033[0m"
|
||||||
VERSION="current"
|
VERSION="current"
|
||||||
EXPECTED_OUTPUT=$(command printf -- "${FORMAT}\\n" "${VERSION}")
|
EXPECTED_OUTPUT=$(command printf -- "${FORMAT}\\n" "${VERSION}")
|
||||||
|
|
||||||
|
@ -3,12 +3,16 @@
|
|||||||
setup () {
|
setup () {
|
||||||
HOME="."
|
HOME="."
|
||||||
NVM_ENV=testing \. ../../install.sh
|
NVM_ENV=testing \. ../../install.sh
|
||||||
|
ZDOTDIR="$HOME/zdotdir"
|
||||||
|
mkdir -p zdotdir
|
||||||
touch ".bashrc"
|
touch ".bashrc"
|
||||||
touch ".bash_profile"
|
touch ".bash_profile"
|
||||||
touch ".zprofile"
|
touch ".zprofile"
|
||||||
touch ".zshrc"
|
touch ".zshrc"
|
||||||
touch ".profile"
|
touch ".profile"
|
||||||
touch "test_profile"
|
touch "test_profile"
|
||||||
|
touch "zdotdir/.zshrc"
|
||||||
|
touch "zdotdir/.zprofile"
|
||||||
}
|
}
|
||||||
|
|
||||||
cleanup () {
|
cleanup () {
|
||||||
@ -17,7 +21,9 @@ cleanup () {
|
|||||||
unset NVM_DETECT_PROFILE
|
unset NVM_DETECT_PROFILE
|
||||||
unset SHELL
|
unset SHELL
|
||||||
unset -f setup cleanup die
|
unset -f setup cleanup die
|
||||||
|
unset ZDOTDIR
|
||||||
rm -f ".bashrc" ".bash_profile" ".zprofile" ".zshrc" ".profile" "test_profile" > "/dev/null" 2>&1
|
rm -f ".bashrc" ".bash_profile" ".zprofile" ".zshrc" ".profile" "test_profile" > "/dev/null" 2>&1
|
||||||
|
rm -rf zdotdir 2>&1
|
||||||
}
|
}
|
||||||
|
|
||||||
die () { echo "$@" '$NVM_DETECT_PROFILE:' "$NVM_DETECT_PROFILE"; cleanup; exit 1; }
|
die () { echo "$@" '$NVM_DETECT_PROFILE:' "$NVM_DETECT_PROFILE"; cleanup; exit 1; }
|
||||||
@ -29,49 +35,54 @@ setup
|
|||||||
#
|
#
|
||||||
|
|
||||||
# setting $PROFILE to /dev/null should return no detected profile
|
# setting $PROFILE to /dev/null should return no detected profile
|
||||||
NVM_DETECT_PROFILE="$(PROFILE='/dev/null'; nvm_detect_profile)"
|
NVM_DETECT_PROFILE="$(PROFILE='/dev/null' nvm_detect_profile)"
|
||||||
if [ -n "$NVM_DETECT_PROFILE" ]; then
|
if [ -n "$NVM_DETECT_PROFILE" ]; then
|
||||||
die "nvm_detect_profile still detected a profile even though PROFILE=/dev/null"
|
die "nvm_detect_profile still detected a profile even though PROFILE=/dev/null"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# .bashrc should be detected for bash
|
# .bashrc should be detected for bash
|
||||||
NVM_DETECT_PROFILE="$(SHELL="/bin/bash"; unset PROFILE; nvm_detect_profile)"
|
NVM_DETECT_PROFILE="$(SHELL="/bin/bash" PROFILE= nvm_detect_profile)"
|
||||||
if [ "$NVM_DETECT_PROFILE" != "$HOME/.bashrc" ]; then
|
if [ "$NVM_DETECT_PROFILE" != "$HOME/.bashrc" ]; then
|
||||||
die "nvm_detect_profile didn't pick \$HOME/.bashrc for bash"
|
die "nvm_detect_profile didn't pick \$HOME/.bashrc for bash"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# $PROFILE should override .bashrc profile detection
|
# $PROFILE should override .bashrc profile detection
|
||||||
NVM_DETECT_PROFILE="$(SHELL="/bin/bash"; PROFILE="test_profile"; nvm_detect_profile)"
|
NVM_DETECT_PROFILE="$(SHELL="/bin/bash" PROFILE="test_profile" nvm_detect_profile)"
|
||||||
if [ "$NVM_DETECT_PROFILE" != "test_profile" ]; then
|
if [ "$NVM_DETECT_PROFILE" != "test_profile" ]; then
|
||||||
die "nvm_detect_profile ignored \$PROFILE"
|
die "nvm_detect_profile ignored \$PROFILE"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
# zdotdir/.zshrc should be detected for zsh
|
||||||
|
NVM_DETECT_PROFILE="$(SHELL="/bin/zsh" PROFILE= nvm_detect_profile)"
|
||||||
|
if [ "$NVM_DETECT_PROFILE" != "$ZDOTDIR/.zshrc" ]; then
|
||||||
|
die "nvm_detect_profile didn't pick \$ZDOTDIR/.zshrc for zsh"
|
||||||
|
fi
|
||||||
|
|
||||||
# .zshrc should be detected for zsh
|
# .zshrc should be detected for zsh
|
||||||
NVM_DETECT_PROFILE="$(SHELL="/bin/zsh"; unset PROFILE; nvm_detect_profile)"
|
NVM_DETECT_PROFILE="$(SHELL="/bin/zsh" PROFILE= ZDOTDIR= nvm_detect_profile)"
|
||||||
if [ "$NVM_DETECT_PROFILE" != "$HOME/.zshrc" ]; then
|
if [ "$NVM_DETECT_PROFILE" != "$HOME/.zshrc" ]; then
|
||||||
die "nvm_detect_profile didn't pick \$HOME/.zshrc for zsh"
|
die "nvm_detect_profile didn't pick \$HOME/.zshrc for zsh"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# $PROFILE should override .zshrc profile detection
|
# $PROFILE should override .zshrc profile detection
|
||||||
NVM_DETECT_PROFILE="$(SHELL="/usr/bin/zsh"; PROFILE="test_profile"; nvm_detect_profile)"
|
NVM_DETECT_PROFILE="$(SHELL="/usr/bin/zsh" PROFILE="test_profile" nvm_detect_profile)"
|
||||||
if [ "$NVM_DETECT_PROFILE" != "test_profile" ]; then
|
if [ "$NVM_DETECT_PROFILE" != "test_profile" ]; then
|
||||||
die "nvm_detect_profile ignored \$PROFILE"
|
die "nvm_detect_profile ignored \$PROFILE"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
|
||||||
#
|
#
|
||||||
# Confirm $PROFILE is only returned when it points to a valid file
|
# Confirm $PROFILE is only returned when it points to a valid file
|
||||||
#
|
#
|
||||||
|
|
||||||
# $PROFILE is a valid file
|
# $PROFILE is a valid file
|
||||||
NVM_DETECT_PROFILE="$(PROFILE="test_profile"; unset SHELL; nvm_detect_profile)"
|
NVM_DETECT_PROFILE="$(PROFILE="test_profile" SHELL= nvm_detect_profile)"
|
||||||
if [ "$NVM_DETECT_PROFILE" != "test_profile" ]; then
|
if [ "$NVM_DETECT_PROFILE" != "test_profile" ]; then
|
||||||
die "nvm_detect_profile didn't pick \$PROFILE when it was a valid file"
|
die "nvm_detect_profile didn't pick \$PROFILE when it was a valid file"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# $PROFILE is not a valid file
|
# $PROFILE is not a valid file
|
||||||
rm "test_profile"
|
rm "test_profile"
|
||||||
NVM_DETECT_PROFILE="$(PROFILE="test_profile"; nvm_detect_profile)"
|
NVM_DETECT_PROFILE="$(PROFILE="test_profile" nvm_detect_profile)"
|
||||||
if [ "$NVM_DETECT_PROFILE" = "test_profile" ]; then
|
if [ "$NVM_DETECT_PROFILE" = "test_profile" ]; then
|
||||||
die "nvm_detect_profile picked \$PROFILE when it was an invalid file"
|
die "nvm_detect_profile picked \$PROFILE when it was an invalid file"
|
||||||
fi
|
fi
|
||||||
@ -83,44 +94,58 @@ fi
|
|||||||
#
|
#
|
||||||
|
|
||||||
# It should favor .profile if file exists
|
# It should favor .profile if file exists
|
||||||
NVM_DETECT_PROFILE="$(unset SHELL; nvm_detect_profile)"
|
NVM_DETECT_PROFILE="$(SHELL= ZDOTDIR= nvm_detect_profile)"
|
||||||
if [ "$NVM_DETECT_PROFILE" != "$HOME/.profile" ]; then
|
if [ "$NVM_DETECT_PROFILE" != "$HOME/.profile" ]; then
|
||||||
die "nvm_detect_profile should have selected .profile"
|
die "nvm_detect_profile should have selected .profile; got $NVM_DETECT_PROFILE"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# Otherwise, it should favor .bashrc if file exists
|
# Otherwise, it should favor .bashrc if file exists
|
||||||
rm ".profile"
|
rm ".profile"
|
||||||
NVM_DETECT_PROFILE="$(unset SHELL; nvm_detect_profile)"
|
NVM_DETECT_PROFILE="$(SHELL= ZDOTDIR= nvm_detect_profile)"
|
||||||
if [ "$NVM_DETECT_PROFILE" != "$HOME/.bashrc" ]; then
|
if [ "$NVM_DETECT_PROFILE" != "$HOME/.bashrc" ]; then
|
||||||
die "nvm_detect_profile should have selected .bashrc"
|
die "nvm_detect_profile should have selected .bashrc; got $NVM_DETECT_PROFILE"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# Otherwise, it should favor .bash_profile if file exists
|
# Otherwise, it should favor .bash_profile if file exists
|
||||||
rm ".bashrc"
|
rm ".bashrc"
|
||||||
NVM_DETECT_PROFILE="$(unset SHELL; nvm_detect_profile)"
|
NVM_DETECT_PROFILE="$(SHELL= ZDOTDIR= nvm_detect_profile)"
|
||||||
if [ "$NVM_DETECT_PROFILE" != "$HOME/.bash_profile" ]; then
|
if [ "$NVM_DETECT_PROFILE" != "$HOME/.bash_profile" ]; then
|
||||||
die "nvm_detect_profile should have selected .bash_profile"
|
die "nvm_detect_profile should have selected .bash_profile; got $NVM_DETECT_PROFILE"
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Otherwise, it should favor zdotdir/.zprofile if file exists
|
||||||
|
rm ".bash_profile"
|
||||||
|
NVM_DETECT_PROFILE="$(SHELL= nvm_detect_profile)"
|
||||||
|
if [ "$NVM_DETECT_PROFILE" != "$ZDOTDIR/.zprofile" ]; then
|
||||||
|
die "nvm_detect_profile should have selected zdotdir/.zprofile; got $NVM_DETECT_PROFILE"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# Otherwise, it should favor .zprofile if file exists
|
# Otherwise, it should favor .zprofile if file exists
|
||||||
rm ".bash_profile"
|
rm "zdotdir/.zprofile"
|
||||||
NVM_DETECT_PROFILE="$(unset SHELL; nvm_detect_profile)"
|
NVM_DETECT_PROFILE="$(SHELL= ZDOTDIR= nvm_detect_profile)"
|
||||||
if [ "$NVM_DETECT_PROFILE" != "$HOME/.zprofile" ]; then
|
if [ "$NVM_DETECT_PROFILE" != "$HOME/.zprofile" ]; then
|
||||||
die "nvm_detect_profile should have selected .zprofile"
|
die "nvm_detect_profile should have selected .zprofile; got $NVM_DETECT_PROFILE"
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Otherwise, it should favor zdotdir/.zshrc if file exists
|
||||||
|
rm ".zprofile"
|
||||||
|
NVM_DETECT_PROFILE="$(SHELL= nvm_detect_profile)"
|
||||||
|
if [ "$NVM_DETECT_PROFILE" != "$ZDOTDIR/.zshrc" ]; then
|
||||||
|
die "nvm_detect_profile should have selected zdotdir/.zshrc; got $NVM_DETECT_PROFILE"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# Otherwise, it should favor .zshrc if file exists
|
# Otherwise, it should favor .zshrc if file exists
|
||||||
rm ".zprofile"
|
rm "zdotdir/.zshrc"
|
||||||
NVM_DETECT_PROFILE="$(unset SHELL; nvm_detect_profile)"
|
NVM_DETECT_PROFILE="$(SHELL= ZDOTDIR= nvm_detect_profile)"
|
||||||
if [ "$NVM_DETECT_PROFILE" != "$HOME/.zshrc" ]; then
|
if [ "$NVM_DETECT_PROFILE" != "$HOME/.zshrc" ]; then
|
||||||
die "nvm_detect_profile should have selected .zshrc"
|
die "nvm_detect_profile should have selected .zshrc; got $NVM_DETECT_PROFILE"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# It should be empty if none is found
|
# It should be empty if none is found
|
||||||
rm ".zshrc"
|
rm ".zshrc"
|
||||||
NVM_DETECT_PROFILE="$(unset SHELL; nvm_detect_profile)"
|
NVM_DETECT_PROFILE="$(SHELL= nvm_detect_profile)"
|
||||||
if [ ! -z "$NVM_DETECT_PROFILE" ]; then
|
if [ ! -z "$NVM_DETECT_PROFILE" ]; then
|
||||||
die "nvm_detect_profile should have returned an empty value"
|
die "nvm_detect_profile should have returned an empty value; got $NVM_DETECT_PROFILE"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
cleanup
|
cleanup
|
||||||
|
Loading…
x
Reference in New Issue
Block a user