mirror of
https://github.com/nvm-sh/nvm.git
synced 2025-05-10 14:21:50 +00:00
Merge remote-tracking branch 'upstream/master'
This commit is contained in:
commit
173f272085
@ -19,12 +19,13 @@ before_install:
|
||||
- curl --version
|
||||
- wget --version
|
||||
install:
|
||||
- if [ -z "${SHELLCHECK-}" ]; then nvm install node && npm install && npm prune && npm ls urchin doctoc eclint; fi
|
||||
- if [ -z "${SHELLCHECK-}" ]; then nvm install node && npm install && npm prune && npm ls urchin doctoc eclint dockerfile_lint; fi
|
||||
- '[ -z "$WITHOUT_CURL" ] || sudo apt-get remove curl -y'
|
||||
script:
|
||||
- if [ -n "${MAKE_RELEASE-}" ]; then export GIT_EDITOR="sed -i '1 s/^/99.99.99 make release test/'" && git fetch --unshallow --tags && echo proceed | make TAG=99.99.99 release ; fi
|
||||
- if [ -n "${DOCTOCCHECK-}" ]; then cp README.md README.md.orig && npm run doctoc && diff -q README.md README.md.orig ; fi
|
||||
- if [ -n "${ECLINT-}" ]; then npm run eclint ; fi
|
||||
- if [ -n "${DOCKERFILE_LINT-}" ]; then npm run dockerfile_lint ; fi
|
||||
- if [ -n "${SHELLCHECK-}" ]; then shellcheck -s bash nvm.sh && shellcheck -s sh nvm.sh && shellcheck -s dash nvm.sh && shellcheck -s ksh nvm.sh ; fi
|
||||
- if [ -n "${SHELLCHECK-}" ]; then shellcheck -s bash install.sh bash_completion nvm-exec ; fi
|
||||
- if [ -n "${SHELL-}" ] && [ -n "${TEST_SUITE}" ]; then if [ "${TEST_SUITE}" = 'installation_iojs' ]; then travis_retry make TEST_SUITE=$TEST_SUITE URCHIN="$(npm bin)/urchin" test-$SHELL ; else make TEST_SUITE=$TEST_SUITE URCHIN="$(npm bin)/urchin" test-$SHELL; fi; fi
|
||||
@ -42,6 +43,7 @@ env:
|
||||
- DOCTOCCHECK=true
|
||||
- SHELLCHECK=true
|
||||
- ECLINT=true
|
||||
- DOCKERFILE_LINT=true
|
||||
- SHELL=bash TEST_SUITE=install_script
|
||||
- SHELL=sh TEST_SUITE=fast
|
||||
- SHELL=dash TEST_SUITE=fast
|
||||
@ -89,3 +91,4 @@ env:
|
||||
- NODE=4.6 TEST="nvm install-latest-npm"
|
||||
- NODE=4.5 TEST="nvm install-latest-npm"
|
||||
- NODE=4.4 TEST="nvm install-latest-npm"
|
||||
- NODE=2 TEST="nvm install-latest-npm"
|
||||
|
27
Dockerfile
27
Dockerfile
@ -8,14 +8,19 @@
|
||||
|
||||
# Use Ubuntu Trusty Tahr as base image as we're using on Travis CI
|
||||
# I also tested with Ubuntu 16.04, should be good with it!
|
||||
From ubuntu:14.04
|
||||
MAINTAINER Peter Dave Hello <hsu@peterdavehello.org>
|
||||
FROM ubuntu:14.04
|
||||
LABEL maintainer="Peter Dave Hello <hsu@peterdavehello.org>"
|
||||
LABEL name="nvm-dev-env"
|
||||
LABEL version="latest"
|
||||
|
||||
# Set the SHELL to bash with pipefail option
|
||||
SHELL ["/bin/bash", "-o", "pipefail", "-c"]
|
||||
|
||||
# Prevent dialog during apt install
|
||||
ENV DEBIAN_FRONTEND noninteractive
|
||||
|
||||
# ShellCheck version
|
||||
ENV SHELLCHECK_VERSION=0.4.7
|
||||
ENV SHELLCHECK_VERSION=0.5.0
|
||||
|
||||
# Pick a Ubuntu apt mirror site for better speed
|
||||
# ref: https://launchpad.net/ubuntu/+archivemirrors
|
||||
@ -83,6 +88,10 @@ RUN wget --version
|
||||
# Add user "nvm" as non-root user
|
||||
RUN useradd -ms /bin/bash nvm
|
||||
|
||||
# Copy and set permission for nvm directory
|
||||
COPY . /home/nvm/.nvm/
|
||||
RUN chown nvm:nvm -R "home/nvm/.nvm"
|
||||
|
||||
# Set sudoer for "nvm"
|
||||
RUN echo 'nvm ALL=(ALL) NOPASSWD: ALL' >> /etc/sudoers
|
||||
|
||||
@ -90,19 +99,17 @@ RUN echo 'nvm ALL=(ALL) NOPASSWD: ALL' >> /etc/sudoers
|
||||
USER nvm
|
||||
|
||||
# nvm
|
||||
COPY . /home/nvm/.nvm/
|
||||
RUN sudo chown nvm:nvm -R $HOME/.nvm
|
||||
RUN echo 'export NVM_DIR="$HOME/.nvm"' >> $HOME/.bashrc
|
||||
RUN echo '[ -s "$NVM_DIR/nvm.sh" ] && . "$NVM_DIR/nvm.sh" # This loads nvm' >> $HOME/.bashrc
|
||||
RUN echo '[ -s "$NVM_DIR/bash_completion" ] && . "$NVM_DIR/bash_completion" # This loads nvm bash_completion' >> $HOME/.bashrc
|
||||
RUN echo 'export NVM_DIR="$HOME/.nvm"' >> "$HOME/.bashrc"
|
||||
RUN echo '[ -s "$NVM_DIR/nvm.sh" ] && . "$NVM_DIR/nvm.sh" # This loads nvm' >> "$HOME/.bashrc"
|
||||
RUN echo '[ -s "$NVM_DIR/bash_completion" ] && . "$NVM_DIR/bash_completion" # This loads nvm bash_completion' >> "$HOME/.bashrc"
|
||||
|
||||
# nodejs and tools
|
||||
RUN bash -c 'source $HOME/.nvm/nvm.sh && \
|
||||
nvm install node && \
|
||||
npm install -g doctoc urchin && \
|
||||
npm install -g doctoc urchin eclint dockerfile_lint && \
|
||||
npm install --prefix "$HOME/.nvm/"'
|
||||
|
||||
# Set WORKDIR to nvm directory
|
||||
WORKDIR /home/nvm/.nvm
|
||||
|
||||
ENTRYPOINT /bin/bash
|
||||
ENTRYPOINT ["/bin/bash"]
|
||||
|
10
README.md
10
README.md
@ -54,11 +54,15 @@ wget -qO- https://raw.githubusercontent.com/creationix/nvm/v0.33.11/install.sh |
|
||||
|
||||
<sub>The script clones the nvm repository to `~/.nvm` and adds the source line to your profile (`~/.bash_profile`, `~/.zshrc`, `~/.profile`, or `~/.bashrc`).</sub>
|
||||
|
||||
<sub>**Note:** If the environment variable `$XDG_CONFIG_HOME` is present, it will place the `nvm` files there.</sub>
|
||||
|
||||
```sh
|
||||
export NVM_DIR="$HOME/.nvm"
|
||||
export NVM_DIR="${XDG_CONFIG_HOME/:-$HOME/.}nvm"
|
||||
[ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh" # This loads nvm
|
||||
```
|
||||
|
||||
**Note:** You can add `--no-use` to the end of the above script (...`nvm.sh --no-use`) to postpone using `nvm` until you manually [`use`](#usage) it.
|
||||
|
||||
You can customize the install source, directory, profile, and version using the `NVM_SOURCE`, `NVM_DIR`, `PROFILE`, and `NODE_VERSION` variables.
|
||||
Eg: `curl ... | NVM_DIR="path/to/nvm"`. Ensure that the `NVM_DIR` does not contain a trailing slash.
|
||||
|
||||
@ -71,7 +75,7 @@ command -v nvm
|
||||
```
|
||||
simply close your current terminal, open a new terminal, and try verifying again.
|
||||
|
||||
**Note:** Since OS X 10.9, `/usr/bin/git` was preset by Xcode command line tools, which caused Git can't be properly detected if it's installed or not. You need to manually install the Xcode command line tools before running the install script, otherwise, it'll fail. (see [#1782](https://github.com/creationix/nvm/issues/1782))
|
||||
**Note:** Since OS X 10.9, `/usr/bin/git` has been preset by Xcode command line tools, which means we can't properly detect if Git is installed or not. You need to manually install the Xcode command line tools before running the install script, otherwise, it'll fail. (see [#1782](https://github.com/creationix/nvm/issues/1782))
|
||||
|
||||
**Note:** On OS X, if you get `nvm: command not found` after running the install script, one of the following might be the reason:-
|
||||
- your system may not have a [`.bash_profile file`] where the command is set up. Simply create one with `touch ~/.bash_profile` and run the install script again
|
||||
@ -378,7 +382,7 @@ load-nvmrc() {
|
||||
|
||||
if [ "$nvmrc_node_version" = "N/A" ]; then
|
||||
nvm install
|
||||
elif [ "$nvmrc_node_version" = "$node_version" ]; then
|
||||
elif [ "$nvmrc_node_version" != "$node_version" ]; then
|
||||
nvm use
|
||||
fi
|
||||
elif [ "$node_version" != "$(nvm version default)" ]; then
|
||||
|
13
install.sh
13
install.sh
@ -7,7 +7,13 @@ nvm_has() {
|
||||
}
|
||||
|
||||
nvm_install_dir() {
|
||||
command printf %s "${NVM_DIR:-"$HOME/.nvm"}"
|
||||
if [ ! -z "$NVM_DIR" ]; then
|
||||
printf %s "${NVM_DIR}"
|
||||
elif [ ! -z "$XDG_CONFIG_HOME" ]; then
|
||||
printf %s "${XDG_CONFIG_HOME/nvm}"
|
||||
else
|
||||
printf %s "$HOME/.nvm"
|
||||
fi
|
||||
}
|
||||
|
||||
nvm_latest_version() {
|
||||
@ -212,6 +218,11 @@ nvm_try_profile() {
|
||||
# Otherwise, an empty string is returned
|
||||
#
|
||||
nvm_detect_profile() {
|
||||
if [ "${PROFILE-}" = '/dev/null' ]; then
|
||||
# the user has specifically requested NOT to have nvm touch their profile
|
||||
return
|
||||
fi
|
||||
|
||||
if [ -n "${PROFILE}" ] && [ -f "${PROFILE}" ]; then
|
||||
echo "${PROFILE}"
|
||||
return
|
||||
|
35
nvm.sh
35
nvm.sh
@ -130,7 +130,7 @@ nvm_has_system_iojs() {
|
||||
}
|
||||
|
||||
nvm_is_version_installed() {
|
||||
[ -n "${1-}" ] && [ -d "$(nvm_version_path "${1-}" 2> /dev/null)" ]
|
||||
[ -n "${1-}" ] && [ -x "$(nvm_version_path "$1" 2> /dev/null)"/bin/node ]
|
||||
}
|
||||
|
||||
nvm_print_npm_version() {
|
||||
@ -1043,9 +1043,9 @@ nvm_remote_versions() {
|
||||
NVM_LS_REMOTE_IOJS_EXIT_CODE=0
|
||||
local NVM_LS_REMOTE_IOJS_OUTPUT
|
||||
NVM_LS_REMOTE_IOJS_OUTPUT=''
|
||||
if [ -z "${NVM_LTS-}" ] && ( \
|
||||
[ -z "${NVM_FLAVOR-}" ] || [ "${NVM_FLAVOR-}" = "${NVM_IOJS_PREFIX}" ] \
|
||||
); then
|
||||
if [ -z "${NVM_LTS-}" ] && {
|
||||
[ -z "${NVM_FLAVOR-}" ] || [ "${NVM_FLAVOR-}" = "${NVM_IOJS_PREFIX}" ];
|
||||
}; then
|
||||
NVM_LS_REMOTE_IOJS_OUTPUT=$(nvm_ls_remote_iojs "${PATTERN-}") &&:
|
||||
NVM_LS_REMOTE_IOJS_EXIT_CODE=$?
|
||||
fi
|
||||
@ -1148,12 +1148,19 @@ nvm_change_path() {
|
||||
elif ! nvm_echo "${1-}" | nvm_grep -q "${NVM_DIR}/[^/]*${2-}" \
|
||||
&& ! nvm_echo "${1-}" | nvm_grep -q "${NVM_DIR}/versions/[^/]*/[^/]*${2-}"; then
|
||||
nvm_echo "${3-}${2-}:${1-}"
|
||||
# if the initial path contains BOTH an nvm path (checked for above) and
|
||||
# that nvm path is preceded by a system binary path, just prepend the
|
||||
# supplementary path instead of replacing it.
|
||||
# https://github.com/creationix/nvm/issues/1652#issuecomment-342571223
|
||||
elif nvm_echo "${1-}" | nvm_grep -Eq "(^|:)(/usr(/local)?)?${2-}:.*${NVM_DIR}/[^/]*${2-}" \
|
||||
|| nvm_echo "${1-}" | nvm_grep -Eq "(^|:)(/usr(/local)?)?${2-}:.*${NVM_DIR}/versions/[^/]*/[^/]*${2-}"; then
|
||||
nvm_echo "${3-}${2-}:${1-}"
|
||||
# use sed to replace the existing nvm path with the supplementary path. This
|
||||
# preserves the order of the path.
|
||||
else
|
||||
nvm_echo "${1-}" | command sed \
|
||||
-e "s#${NVM_DIR}/[^/]*${2-}[^:]*#${3-}${2-}#g" \
|
||||
-e "s#${NVM_DIR}/versions/[^/]*/[^/]*${2-}[^:]*#${3-}${2-}#g"
|
||||
-e "s#${NVM_DIR}/[^/]*${2-}[^:]*#${3-}${2-}#" \
|
||||
-e "s#${NVM_DIR}/versions/[^/]*/[^/]*${2-}[^:]*#${3-}${2-}#"
|
||||
fi
|
||||
}
|
||||
|
||||
@ -1293,14 +1300,14 @@ nvm_list_aliases() {
|
||||
local ALIAS_NAME
|
||||
for ALIAS_NAME in "$(nvm_node_prefix)" "stable" "unstable"; do
|
||||
{
|
||||
if [ ! -f "${NVM_ALIAS_DIR}/${ALIAS_NAME}" ] && ([ -z "${ALIAS}" ] || [ "${ALIAS_NAME}" = "${ALIAS}" ]); then
|
||||
if [ ! -f "${NVM_ALIAS_DIR}/${ALIAS_NAME}" ] && { [ -z "${ALIAS}" ] || [ "${ALIAS_NAME}" = "${ALIAS}" ]; }; then
|
||||
NVM_NO_COLORS="${NVM_NO_COLORS-}" NVM_CURRENT="${NVM_CURRENT}" nvm_print_default_alias "${ALIAS_NAME}"
|
||||
fi
|
||||
} &
|
||||
done
|
||||
wait
|
||||
ALIAS_NAME="$(nvm_iojs_prefix)"
|
||||
if [ ! -f "${NVM_ALIAS_DIR}/${ALIAS_NAME}" ] && ([ -z "${ALIAS}" ] || [ "${ALIAS_NAME}" = "${ALIAS}" ]); then
|
||||
if [ ! -f "${NVM_ALIAS_DIR}/${ALIAS_NAME}" ] && { [ -z "${ALIAS}" ] || [ "${ALIAS_NAME}" = "${ALIAS}" ]; }; then
|
||||
NVM_NO_COLORS="${NVM_NO_COLORS-}" NVM_CURRENT="${NVM_CURRENT}" nvm_print_default_alias "${ALIAS_NAME}"
|
||||
fi
|
||||
) | sort
|
||||
@ -2826,7 +2833,7 @@ nvm_check_file_permissions() {
|
||||
ZSH_HAS_NONOMATCH_UNSET="$(set +e ; setopt | nvm_grep -q nonomatch ; nvm_echo $?)"
|
||||
setopt nonomatch
|
||||
fi
|
||||
for FILE in $1/* $1/.[!.]* $1/..?* ; do
|
||||
for FILE in "$1"/* "$1"/.[!.]* "$1"/..?* ; do
|
||||
if [ -d "$FILE" ]; then
|
||||
if ! nvm_check_file_permissions "$FILE"; then
|
||||
if [ "${ZSH_HAS_NONOMATCH_UNSET}" -eq 1 ] && nvm_has "setopt"; then
|
||||
@ -4132,6 +4139,8 @@ nvm_supports_xz() {
|
||||
}
|
||||
|
||||
nvm_auto() {
|
||||
local NVM_CURRENT
|
||||
NVM_CURRENT="$(nvm_ls_current)"
|
||||
local NVM_MODE
|
||||
NVM_MODE="${1-}"
|
||||
local VERSION
|
||||
@ -4143,12 +4152,16 @@ nvm_auto() {
|
||||
nvm install >/dev/null
|
||||
fi
|
||||
elif [ "_$NVM_MODE" = '_use' ]; then
|
||||
if [ "_${NVM_CURRENT}" = '_none' ] || [ "_${NVM_CURRENT}" = '_system' ]; then
|
||||
VERSION="$(nvm_resolve_local_alias default 2>/dev/null || nvm_echo)"
|
||||
if [ -n "$VERSION" ]; then
|
||||
nvm use --silent "$VERSION" >/dev/null
|
||||
if [ -n "${VERSION}" ]; then
|
||||
nvm use --silent "${VERSION}" >/dev/null
|
||||
elif nvm_rc_version >/dev/null 2>&1; then
|
||||
nvm use --silent >/dev/null
|
||||
fi
|
||||
else
|
||||
nvm use --silent "${NVM_CURRENT}" >/dev/null
|
||||
fi
|
||||
elif [ "_$NVM_MODE" != '_none' ]; then
|
||||
nvm_err 'Invalid auto mode supplied.'
|
||||
return 1
|
||||
|
@ -15,7 +15,8 @@
|
||||
"test/installation/iojs": "shell=$(basename -- $(ps -o comm= $(ps -o ppid= -p $PPID)) | sed 's/^-//'); make TEST_SUITE=installation_iojs test-$shell",
|
||||
"test/sourcing": "shell=$(basename -- $(ps -o comm= $(ps -o ppid= -p $PPID)) | sed 's/^-//'); make TEST_SUITE=sourcing test-$shell",
|
||||
"doctoc": "doctoc --title='## Table of Contents' --github README.md",
|
||||
"eclint": "eclint check $(git ls-tree --name-only HEAD | xargs)"
|
||||
"eclint": "eclint check $(git ls-tree --name-only HEAD | xargs)",
|
||||
"dockerfile_lint": "dockerfile_lint"
|
||||
},
|
||||
"repository": {
|
||||
"type": "git",
|
||||
@ -35,6 +36,7 @@
|
||||
},
|
||||
"homepage": "https://github.com/creationix/nvm",
|
||||
"devDependencies": {
|
||||
"dockerfile_lint": "^0.3.2",
|
||||
"eclint": "^2.6.0",
|
||||
"replace": "^0.3.0",
|
||||
"semver": "^5.0.1",
|
||||
|
@ -14,9 +14,9 @@ cleanup () {
|
||||
rm -rf "${NVM_DIR}/versions/io.js/v0.2.1"
|
||||
}
|
||||
|
||||
mkdir "${NVM_DIR}/v0.8.1"
|
||||
mkdir "${NVM_DIR}/v0.9.1"
|
||||
mkdir -p "${NVM_DIR}/versions/io.js/v0.2.1"
|
||||
make_fake_node v0.8.1
|
||||
make_fake_node v0.9.1
|
||||
make_fake_iojs v0.2.1
|
||||
|
||||
EXPECTED_STABLE="$(nvm_print_implicit_alias local stable)"
|
||||
STABLE_VERSION="$(nvm_version "$EXPECTED_STABLE")"
|
||||
|
@ -1,11 +1,14 @@
|
||||
#!/bin/sh
|
||||
|
||||
\. ../../../nvm.sh
|
||||
\. ../../common.sh
|
||||
|
||||
for i in $(seq 1 10)
|
||||
do
|
||||
echo 0.0.$i > ../../../alias/test-stable-$i
|
||||
mkdir -p ../../../v0.0.$i
|
||||
make_fake_node v0.0.$i
|
||||
echo 0.1.$i > ../../../alias/test-unstable-$i
|
||||
mkdir -p ../../../v0.1.$i
|
||||
make_fake_node v0.1.$i
|
||||
echo 0.2.$i > ../../../alias/test-iojs-$i
|
||||
mkdir -p ../../../versions/io.js/v0.2.$i
|
||||
make_fake_iojs v0.2.$i
|
||||
done
|
||||
|
@ -1,10 +1,11 @@
|
||||
#!/bin/sh
|
||||
|
||||
\. ../../../nvm.sh
|
||||
\. ../../common.sh
|
||||
|
||||
mkdir -p "${NVM_DIR}/v0.0.2"
|
||||
mkdir -p "${NVM_DIR}/v0.0.20"
|
||||
mkdir -p "${NVM_DIR}/versions/node/v0.12.0"
|
||||
make_fake_node v0.0.2
|
||||
make_fake_node v0.0.20
|
||||
make_fake_node v0.12.0
|
||||
|
||||
die () { echo "$@" ; exit 1; }
|
||||
|
||||
|
@ -1,9 +1,10 @@
|
||||
#!/bin/sh
|
||||
|
||||
\. ../../../nvm.sh
|
||||
\. ../../common.sh
|
||||
|
||||
mkdir "${NVM_DIR}/v0.0.2"
|
||||
mkdir "${NVM_DIR}/v0.0.20"
|
||||
make_fake_node v0.0.2
|
||||
make_fake_node v0.0.20
|
||||
|
||||
die () { echo "$@" ; exit 1; }
|
||||
|
||||
|
@ -1,10 +1,11 @@
|
||||
#!/bin/sh
|
||||
|
||||
\. ../../../nvm.sh
|
||||
\. ../../common.sh
|
||||
|
||||
mkdir "${NVM_DIR}/v0.1.3"
|
||||
mkdir "${NVM_DIR}/v0.2.3"
|
||||
mkdir "${NVM_DIR}/v0.20.3"
|
||||
make_fake_node v0.1.3
|
||||
make_fake_node v0.2.3
|
||||
make_fake_node v0.20.3
|
||||
|
||||
die () { echo "$@" ; exit 1; }
|
||||
|
||||
|
@ -1,11 +1,12 @@
|
||||
#!/bin/sh
|
||||
|
||||
\. ../../../nvm.sh
|
||||
\. ../../common.sh
|
||||
|
||||
die () { echo "$@" ; exit 1; }
|
||||
|
||||
mkdir "${NVM_DIR}/v0.2.3"
|
||||
mkdir "${NVM_DIR}/v0.3.3"
|
||||
make_fake_node v0.2.3
|
||||
make_fake_node v0.3.3
|
||||
|
||||
EXPECTED_STABLE="$(nvm_print_implicit_alias local stable)"
|
||||
STABLE_VERSION="$(nvm_version "$EXPECTED_STABLE")"
|
||||
@ -19,10 +20,10 @@ nvm ls stable | \grep "$STABLE_VERSION" >/dev/null \
|
||||
nvm ls unstable | \grep "$UNSTABLE_VERSION" >/dev/null \
|
||||
|| die "expected 'nvm ls unstable' to give $UNSTABLE_VERSION, got $(nvm ls unstable)"
|
||||
|
||||
mkdir "${NVM_DIR}/v0.1.2"
|
||||
make_fake_node v0.1.4
|
||||
nvm alias stable 0.1
|
||||
|
||||
nvm ls stable | \grep -v "$STABLE_VERSION" >/dev/null \
|
||||
|| die "'nvm ls stable' contained $STABLE_VERSION instead of v0.1.2"
|
||||
nvm ls stable | \grep v0.1.2 >/dev/null \
|
||||
|| die "'nvm ls stable' did not contain v0.1.2"
|
||||
|| die "'nvm ls stable' contained $STABLE_VERSION instead of v0.1.4"
|
||||
nvm ls stable | \grep v0.1.4 >/dev/null \
|
||||
|| die "'nvm ls stable' did not contain v0.1.4"
|
||||
|
@ -3,13 +3,14 @@
|
||||
die () { echo "$@" ; exit 1; }
|
||||
|
||||
\. ../../../nvm.sh
|
||||
\. ../../common.sh
|
||||
|
||||
mkdir -p "${NVM_DIR}/v0.0.1"
|
||||
mkdir -p "${NVM_DIR}/v0.0.3"
|
||||
mkdir -p "${NVM_DIR}/v0.0.9"
|
||||
mkdir -p "${NVM_DIR}/v0.3.1"
|
||||
mkdir -p "${NVM_DIR}/v0.3.3"
|
||||
mkdir -p "${NVM_DIR}/v0.3.9"
|
||||
make_fake_node v0.0.1
|
||||
make_fake_node v0.0.3
|
||||
make_fake_node v0.0.9
|
||||
make_fake_node v0.3.1
|
||||
make_fake_node v0.3.3
|
||||
make_fake_node v0.3.9
|
||||
|
||||
nvm_has_system_node() { return 0; }
|
||||
nvm ls system | grep system 2>&1 > /dev/null
|
||||
|
@ -1,24 +1,27 @@
|
||||
#!/bin/sh
|
||||
|
||||
\. ../../../nvm.sh
|
||||
\. ../../common.sh
|
||||
|
||||
mkdir "${NVM_DIR}/v0.0.1"
|
||||
mkdir "${NVM_DIR}/v0.0.3"
|
||||
mkdir "${NVM_DIR}/v0.0.9"
|
||||
mkdir "${NVM_DIR}/v0.3.1"
|
||||
mkdir "${NVM_DIR}/v0.3.3"
|
||||
mkdir "${NVM_DIR}/v0.3.9"
|
||||
mkdir -p "${NVM_DIR}/versions/node/v0.12.87"
|
||||
mkdir -p "${NVM_DIR}/versions/node/v0.12.9"
|
||||
mkdir -p "${NVM_DIR}/versions/io.js/v0.1.2"
|
||||
mkdir -p "${NVM_DIR}/versions/io.js/v0.10.2"
|
||||
die () { echo "$@" ; exit 1; }
|
||||
|
||||
make_fake_node v0.0.1
|
||||
make_fake_node v0.0.3
|
||||
make_fake_node v0.0.9
|
||||
make_fake_node v0.3.1
|
||||
make_fake_node v0.3.3
|
||||
make_fake_node v0.3.9
|
||||
make_fake_node v0.12.87
|
||||
make_fake_node v0.12.9
|
||||
make_fake_iojs v0.1.2
|
||||
make_fake_iojs v0.10.2
|
||||
|
||||
# The result should contain the version numbers.
|
||||
nvm ls | grep v0.0.1 >/dev/null &&
|
||||
nvm ls | grep v0.0.3 >/dev/null &&
|
||||
nvm ls | grep v0.0.9 >/dev/null &&
|
||||
nvm ls | grep v0.3.1 >/dev/null &&
|
||||
nvm ls | grep v0.3.3 >/dev/null &&
|
||||
nvm ls | grep v0.3.9 >/dev/null &&
|
||||
nvm ls | grep v0.12.87 >/dev/null &&
|
||||
nvm ls | grep iojs-v0.1.2 >/dev/null
|
||||
nvm ls | grep v0.0.1 >/dev/null || die "v0.0.1 not found in: $(nvm ls)"
|
||||
nvm ls | grep v0.0.3 >/dev/null || die "v0.0.3 not found in: $(nvm ls)"
|
||||
nvm ls | grep v0.0.9 >/dev/null || die "v0.0.9 not found in: $(nvm ls)"
|
||||
nvm ls | grep v0.3.1 >/dev/null || die "v0.3.1 not found in: $(nvm ls)"
|
||||
nvm ls | grep v0.3.3 >/dev/null || die "v0.3.3 not found in: $(nvm ls)"
|
||||
nvm ls | grep v0.3.9 >/dev/null || die "v0.3.9 not found in: $(nvm ls)"
|
||||
nvm ls | grep v0.12.87 >/dev/null || die "v0.12.87 not found in: $(nvm ls)"
|
||||
nvm ls | grep iojs-v0.1.2 >/dev/null || die "iojs-v0.1.2 not found in: $(nvm ls)"
|
||||
|
@ -1,9 +1,10 @@
|
||||
#!/bin/sh
|
||||
|
||||
\. ../../../nvm.sh
|
||||
\. ../../common.sh
|
||||
|
||||
mkdir "${NVM_DIR}/v0.1.3"
|
||||
mkdir "${NVM_DIR}/v0.2.3"
|
||||
make_fake_node v0.1.3
|
||||
make_fake_node v0.2.3
|
||||
|
||||
[ -z `nvm ls | grep '^ *\.'` ]
|
||||
# The result should contain only the appropriate version numbers.
|
||||
|
@ -1,10 +1,10 @@
|
||||
#!/bin/sh
|
||||
|
||||
\. ../../../nvm.sh
|
||||
\. ../../common.sh
|
||||
|
||||
mkdir "${NVM_DIR}/v0.1.3"
|
||||
mkdir "${NVM_DIR}/v0.2.3"
|
||||
mkdir -p "${NVM_DIR}/versions/node"
|
||||
make_fake_node v0.1.3
|
||||
make_fake_node v0.2.3
|
||||
|
||||
[ -z "$(nvm ls | \grep 'versions')" ]
|
||||
# The result should contain only the appropriate version numbers.
|
||||
|
@ -3,13 +3,14 @@
|
||||
die () { echo "$@" ; exit 1; }
|
||||
|
||||
\. ../../../nvm.sh
|
||||
\. ../../common.sh
|
||||
|
||||
mkdir -p "${NVM_DIR}/v0.0.1"
|
||||
mkdir -p "${NVM_DIR}/v0.0.3"
|
||||
mkdir -p "${NVM_DIR}/v0.0.9"
|
||||
mkdir -p "${NVM_DIR}/v0.3.1"
|
||||
mkdir -p "${NVM_DIR}/v0.3.3"
|
||||
mkdir -p "${NVM_DIR}/v0.3.9"
|
||||
make_fake_node v0.0.1
|
||||
make_fake_node v0.0.3
|
||||
make_fake_node v0.0.9
|
||||
make_fake_node v0.3.1
|
||||
make_fake_node v0.3.3
|
||||
make_fake_node v0.3.9
|
||||
|
||||
nvm_has_system_node() { return 0; }
|
||||
nvm ls | grep system 2>&1 > /dev/null
|
||||
|
@ -3,9 +3,10 @@
|
||||
die () { echo "$@" ; exit 1; }
|
||||
|
||||
\. ../../../nvm.sh
|
||||
\. ../../common.sh
|
||||
|
||||
mkdir -p "${NVM_DIR}/versions/node/v0.12.1"
|
||||
mkdir "${NVM_DIR}/v0.1.3"
|
||||
make_fake_node v0.12.1
|
||||
make_fake_node v0.1.3
|
||||
|
||||
nvm ls 0.12 | grep v0.12.1 || die '"nvm ls" did not list a version in the versions/ directory'
|
||||
nvm ls 0.1 | grep v0.1.3 || die '"nvm ls" did not list a version not in the versions/ directory'
|
||||
|
@ -1,8 +1,9 @@
|
||||
#!/bin/sh
|
||||
|
||||
\. ../../../nvm.sh
|
||||
\. ../../common.sh
|
||||
|
||||
mkdir "${NVM_DIR}/v0.1.2"
|
||||
make_fake_node v0.1.2
|
||||
|
||||
nvm ls v0.1 | grep v0.1.2 &&
|
||||
nvm ls v0.1.2 | grep v0.1.2 &&
|
||||
|
@ -1,17 +1,18 @@
|
||||
#!/bin/sh
|
||||
|
||||
\. ../../../nvm.sh
|
||||
\. ../../common.sh
|
||||
|
||||
mkdir "${NVM_DIR}/v0.0.1"
|
||||
mkdir "${NVM_DIR}/v0.0.3"
|
||||
mkdir "${NVM_DIR}/v0.0.9"
|
||||
mkdir "${NVM_DIR}/v0.3.1"
|
||||
mkdir "${NVM_DIR}/v0.3.3"
|
||||
mkdir "${NVM_DIR}/v0.3.9"
|
||||
mkdir -p "${NVM_DIR}/versions/node/v0.12.87"
|
||||
mkdir -p "${NVM_DIR}/versions/node/v0.12.9"
|
||||
mkdir -p "${NVM_DIR}/versions/io.js/v0.1.2"
|
||||
mkdir -p "${NVM_DIR}/versions/io.js/v0.10.2"
|
||||
make_fake_node v0.0.1
|
||||
make_fake_node v0.0.3
|
||||
make_fake_node v0.0.9
|
||||
make_fake_node v0.3.1
|
||||
make_fake_node v0.3.3
|
||||
make_fake_node v0.3.9
|
||||
make_fake_node v0.12.87
|
||||
make_fake_node v0.12.9
|
||||
make_fake_iojs v0.1.2
|
||||
make_fake_iojs v0.10.2
|
||||
|
||||
set -e
|
||||
|
||||
|
@ -5,6 +5,7 @@ rmdir ../../../v0.0.9 >/dev/null 2>&1
|
||||
rmdir ../../../v0.0.20 >/dev/null 2>&1
|
||||
rmdir ../../../v0.1.2 >/dev/null 2>&1
|
||||
rmdir ../../../v0.1.3 >/dev/null 2>&1
|
||||
rmdir ../../../v0.1.4 >/dev/null 2>&1
|
||||
rmdir ../../../v0.2.3 >/dev/null 2>&1
|
||||
rmdir ../../../v0.3.1 >/dev/null 2>&1
|
||||
rmdir ../../../v0.3.3 >/dev/null 2>&1
|
||||
|
@ -2,13 +2,14 @@
|
||||
|
||||
set -ex
|
||||
|
||||
mkdir -p ../../v0.2.3
|
||||
|
||||
die () { echo "$@" ; exit 1; }
|
||||
|
||||
[ `expr $PATH : ".*v0.2.3/.*/bin.*"` = 0 ] || echo "WARNING: Unexpectedly found v0.2.3 already active" >&2
|
||||
|
||||
\. ../../nvm.sh
|
||||
\. ../common.sh
|
||||
|
||||
make_fake_node v0.2.3
|
||||
|
||||
[ `expr $PATH : ".*v0.2.3/.*/bin.*"` = 0 ] || echo "WARNING: Unexpectedly found v0.2.3 already active" >&2
|
||||
|
||||
nvm use --delete-prefix v0.2.3 || die "Failed to activate v0.2.3"
|
||||
[ `expr "$PATH" : ".*v0.2.3/.*/bin.*"` != 0 ] || die "PATH not set up properly"
|
||||
|
@ -8,8 +8,9 @@ cleanup () {
|
||||
}
|
||||
|
||||
\. ../../nvm.sh
|
||||
\. ../common.sh
|
||||
|
||||
mkdir "${NVM_DIR}/v0.10.4"
|
||||
make_fake_node v0.10.4
|
||||
|
||||
nvm deactivate >/dev/null 2>&1
|
||||
|
||||
|
@ -2,11 +2,11 @@
|
||||
|
||||
set -ex
|
||||
|
||||
cd ../..
|
||||
mkdir v0.0.1
|
||||
mkdir src/node-v0.0.1
|
||||
\. ../../nvm.sh
|
||||
\. ../common.sh
|
||||
|
||||
make_fake_node v0.0.1
|
||||
|
||||
. ./nvm.sh
|
||||
nvm uninstall v0.0.1
|
||||
|
||||
[ ! -d 'v0.0.1' ] && [ ! -d 'src/node-v0.0.1/files' ]
|
||||
[ ! -d 'v0.0.1' ]
|
||||
|
@ -2,13 +2,11 @@
|
||||
|
||||
set -ex
|
||||
|
||||
cd ../..
|
||||
mkdir v0.0.1
|
||||
mkdir src/node-v0.0.1
|
||||
\. ../../nvm.sh
|
||||
\. ../common.sh
|
||||
|
||||
sudo touch v0.0.1/sudo
|
||||
|
||||
. ./nvm.sh
|
||||
make_fake_node v0.0.1
|
||||
sudo touch ""$(nvm_version_path v0.0.1)"/sudo"
|
||||
|
||||
RETURN_MESSAGE="$(nvm uninstall v0.0.1 2>&1 || echo)"
|
||||
CHECK_FOR="Cannot uninstall, incorrect permissions on installation folder"
|
||||
|
@ -4,11 +4,12 @@ set -ex
|
||||
|
||||
export NVM_SYMLINK_CURRENT=true
|
||||
\. ../../nvm.sh
|
||||
\. ../common.sh
|
||||
|
||||
rm -rf "${NVM_DIR}/v0.10.29"
|
||||
mkdir "${NVM_DIR}/v0.10.29"
|
||||
make_fake_node v0.10.29
|
||||
nvm use --delete-prefix 0.10.29
|
||||
rmdir "${NVM_DIR}/v0.10.29"
|
||||
rm -rf "${NVM_DIR}/v0.10.29"
|
||||
|
||||
if [ ! -L "${NVM_DIR}/current" ];then
|
||||
echo "Expected 'current' symlink to be created!"
|
||||
@ -23,9 +24,9 @@ if [ "$(basename "${oldLink}")" != 'v0.10.29' ];then
|
||||
fi
|
||||
|
||||
rm -rf "${NVM_DIR}/v0.11.13"
|
||||
mkdir "${NVM_DIR}/v0.11.13"
|
||||
make_fake_node v0.11.13
|
||||
nvm use --delete-prefix 0.11.13
|
||||
rmdir "${NVM_DIR}/v0.11.13"
|
||||
rm -rf "${NVM_DIR}/v0.11.13"
|
||||
|
||||
newLink="$(readlink "${NVM_DIR}/current")"
|
||||
|
||||
|
@ -3,6 +3,7 @@
|
||||
set -ex
|
||||
|
||||
\. ../../nvm.sh
|
||||
\. ../common.sh
|
||||
|
||||
TEST_NODE_VERSION="v0.10.29"
|
||||
|
||||
@ -35,9 +36,9 @@ cleanup() {
|
||||
}
|
||||
|
||||
runNvmUse() {
|
||||
mkdir "${NVM_DIR}/${TEST_NODE_VERSION}"
|
||||
make_fake_node "$TEST_NODE_VERSION"
|
||||
nvm use --delete-prefix "${TEST_NODE_VERSION}" > /dev/null 2>&1
|
||||
rmdir "${NVM_DIR}/${TEST_NODE_VERSION}"
|
||||
rm -rf "${NVM_DIR}/${TEST_NODE_VERSION}"
|
||||
}
|
||||
|
||||
isCurrentSymlinkPresent() {
|
||||
|
@ -41,3 +41,17 @@ NEW_PATH=`nvm_change_path "$EMPTY_PATH" "/bin" "$NVM_DIR/versions/node/v7.1.0"`
|
||||
NEW_PATH=`nvm_change_path "$EMPTY_PATH" "/bin" "$NVM_DIR/v0.1.2"`
|
||||
|
||||
[ "$NEW_PATH" = "$NVM_DIR/v0.1.2/bin" ] || die "Not correctly prepended: $NEW_PATH "
|
||||
|
||||
|
||||
# https://github.com/creationix/nvm/issues/1652#issuecomment-342571223
|
||||
MAC_OS_NESTED_SESSION_PATH=/usr/bin:/usr/local/bin:$NVM_DIR/versions/node/v4.5.0/bin
|
||||
|
||||
# New version dir
|
||||
NEW_PATH=`nvm_change_path "$MAC_OS_NESTED_SESSION_PATH" "/bin" "$NVM_DIR/versions/node/v7.1.0"`
|
||||
|
||||
[ "$NEW_PATH" = "$NVM_DIR/versions/node/v7.1.0/bin:/usr/bin:/usr/local/bin:$NVM_DIR/versions/node/v4.5.0/bin" ] || die "Not correctly changed: $NEW_PATH "
|
||||
|
||||
# Old version dir
|
||||
NEW_PATH=`nvm_change_path "$MAC_OS_NESTED_SESSION_PATH" "/bin" "$NVM_DIR/v0.1.2"`
|
||||
|
||||
[ "$NEW_PATH" = "$NVM_DIR/v0.1.2/bin:/usr/bin:/usr/local/bin:$NVM_DIR/versions/node/v4.5.0/bin" ] || die "Not correctly changed: $NEW_PATH "
|
||||
|
@ -7,8 +7,9 @@ cleanup () {
|
||||
}
|
||||
|
||||
\. ../../../nvm.sh
|
||||
\. ../../common.sh
|
||||
|
||||
mkdir -p "$(nvm_version_path v0.1.2)"
|
||||
make_fake_node v0.1.2
|
||||
|
||||
OUTPUT="$(nvm_ensure_version_installed foo 2>&1)"
|
||||
EXIT_CODE=$?
|
||||
|
@ -1,17 +1,14 @@
|
||||
#!/bin/sh
|
||||
|
||||
cleanup () {
|
||||
rm "${NVM_DIR}/versions/io.js/v0.1.2/node"
|
||||
rm "${NVM_DIR}/versions/io.js/v0.1.2/iojs"
|
||||
rmdir "${NVM_DIR}/versions/io.js/v0.1.2"
|
||||
rm -rf "${NVM_DIR}/versions/io.js/v0.1.2"
|
||||
}
|
||||
die () { echo "$@" ; exit 1; }
|
||||
|
||||
\. ../../../nvm.sh
|
||||
\. ../../common.sh
|
||||
|
||||
mkdir "${NVM_DIR}/versions/io.js/v0.1.2"
|
||||
touch "${NVM_DIR}/versions/io.js/v0.1.2/node"
|
||||
touch "${NVM_DIR}/versions/io.js/v0.1.2/iojs"
|
||||
make_fake_iojs v0.1.2
|
||||
|
||||
nvm use iojs-v0.1.2
|
||||
|
||||
|
@ -1,14 +1,14 @@
|
||||
#!/bin/sh
|
||||
|
||||
\. ../../../nvm.sh
|
||||
\. ../../common.sh
|
||||
|
||||
cleanup () {
|
||||
rm -rf "${NVM_DIR}/v0.1.2/node"
|
||||
rm -rf "${NVM_DIR}/v0.1.2"
|
||||
}
|
||||
die () { echo "$@" ; exit 1; }
|
||||
|
||||
mkdir "${NVM_DIR}/v0.1.2"
|
||||
touch "${NVM_DIR}/v0.1.2/node"
|
||||
make_fake_node v0.1.2
|
||||
|
||||
nvm use 0.1.2
|
||||
|
||||
|
@ -14,13 +14,14 @@ cleanup() {
|
||||
}
|
||||
|
||||
\. ../../../nvm.sh
|
||||
\. ../../common.sh
|
||||
|
||||
mkdir "${NVM_DIR}/v0.2.3"
|
||||
mkdir "${NVM_DIR}/v0.3.4"
|
||||
mkdir "${NVM_DIR}/v0.4.6"
|
||||
mkdir "${NVM_DIR}/v0.5.7"
|
||||
mkdir "${NVM_DIR}/v0.7.7"
|
||||
mkdir -p "${NVM_DIR}/versions/io.js/v0.98.0"
|
||||
make_fake_node v0.2.3
|
||||
make_fake_node v0.3.4
|
||||
make_fake_node v0.4.6
|
||||
make_fake_node v0.5.7
|
||||
make_fake_node v0.7.7
|
||||
make_fake_iojs v0.98.0
|
||||
|
||||
LATEST_STABLE="$(nvm_print_implicit_alias local stable)"
|
||||
[ "_$LATEST_STABLE" = "_0.4" ] || die "local stable is not latest even minor: expected 0.4, got $LATEST_STABLE"
|
||||
@ -35,8 +36,9 @@ LATEST_IOJS="$(nvm_print_implicit_alias local iojs)"
|
||||
[ "_$LATEST_IOJS" = "_iojs-v0.98" ] || die "local iojs is not latest iojs: expected iojs-v0.98, got $LATEST_IOJS"
|
||||
|
||||
## node post v1.0/io.js merger ##
|
||||
mkdir -p "${NVM_DIR}/versions/node/v1.0.0"
|
||||
mkdir -p "${NVM_DIR}/versions/node/v1.1.0"
|
||||
make_fake_node v1.0.0
|
||||
make_fake_node v1.1.0
|
||||
|
||||
|
||||
LATEST_STABLE="$(nvm_print_implicit_alias local stable)"
|
||||
[ "_$LATEST_STABLE" = "_1.1" ] || die "local stable when post-v1.0 exists is not latest: expected 1.1, got $LATEST_STABLE"
|
||||
|
@ -28,6 +28,12 @@ setup
|
||||
# Confirm profile detection via $SHELL works and that $PROFILE overrides profile detection
|
||||
#
|
||||
|
||||
# setting $PROFILE to /dev/null should return no detected profile
|
||||
NVM_DETECT_PROFILE="$(PROFILE='/dev/null'; nvm_detect_profile)"
|
||||
if [ -n "$NVM_DETECT_PROFILE" ]; then
|
||||
die "nvm_detect_profile still detected a profile even though PROFILE=/dev/null"
|
||||
fi
|
||||
|
||||
# .bashrc should be detected for bash
|
||||
NVM_DETECT_PROFILE="$(BASH_VERSION="1"; unset PROFILE; nvm_detect_profile)"
|
||||
if [ "$NVM_DETECT_PROFILE" != "$HOME/.bashrc" ]; then
|
||||
|
@ -16,9 +16,10 @@ install_dir=$(nvm_install_dir)
|
||||
[ "_$install_dir" = "_$NVM_DIR" ] || die "nvm_install_dir should use \$NVM_DIR if it exists. Current output: $install_dir"
|
||||
|
||||
unset NVM_DIR
|
||||
|
||||
# NVM_DIR is not set
|
||||
install_dir=$(nvm_install_dir)
|
||||
[ "_$install_dir" = "_$HOME/.nvm" ] || die "nvm_install_dir should default to \$HOME/.nvm. Current output: $install_dir"
|
||||
fallback_dir=""
|
||||
[ ! -z "$XDG_CONFIG_HOME" ] && fallback_dir="$XDG_CONFIG_HOME/nvm" || fallback_dir="$HOME/.nvm"
|
||||
[ "_$install_dir" = "_$fallback_dir" ] || die "nvm_install_dir should default to \$XDG_CONFIG_DIR/.nvm. Current output: $install_dir"
|
||||
|
||||
cleanup
|
||||
|
@ -19,6 +19,12 @@ fail() {
|
||||
|
||||
! nvm_is_version_installed "${VERSION}" || nvm uninstall "${VERSION}" || die 'uninstall failed'
|
||||
|
||||
# an existing but empty VERSION_PATH directory should not be enough to satisfy nvm_is_version_installed
|
||||
rm -rf "${VERSION_PATH}"
|
||||
mkdir -p "${VERSION_PATH}"
|
||||
nvm_is_version_installed "${VERSION}" && die 'nvm_is_version_installed check not strict enough'
|
||||
rmdir "${VERSION_PATH}"
|
||||
|
||||
OUTPUT="$(NVM_INSTALL_THIRD_PARTY_HOOK=succeed nvm install "${VERSION}")"
|
||||
USE_OUTPUT="$(nvm use "${VERSION}")"
|
||||
EXPECTED_OUTPUT="${VERSION} node std binary ${VERSION_PATH}
|
||||
|
@ -26,6 +26,8 @@ nvm install-latest-npm || die 'nvm install-latest-npm failed: 3'
|
||||
NPM_VERSION="$(npm --version)"
|
||||
[ "${NPM_VERSION}" = '4.6.1' ] || die "io.js v1.x updates to ${NPM_VERSION}; expected v4.6.1"
|
||||
|
||||
export NPM_CONFIG_STRICT_SSL=false # the npm registry tightened up their SSL certs
|
||||
|
||||
nvm deactivate >/dev/null 2>&1 || die 'unable to deactivate: 4'
|
||||
nvm install 0.8.27 >/dev/null 2>&1 || die 'install v0.8 failed'
|
||||
nvm install-latest-npm || die 'nvm install-latest-npm failed: 4'
|
||||
@ -35,7 +37,6 @@ NPM_VERSION="$(npm --version)"
|
||||
## Commented to work around travis-ci breaking 0,6 installs
|
||||
# nvm deactivate >/dev/null 2>&1 || die 'unable to deactivate: 5'
|
||||
# nvm install 0.6.21 >/dev/null 2>&1 || die 'install v0.6 failed'
|
||||
# export NPM_CONFIG_STRICT_SSL=false # npm 1 on travis can't handle SSL to npm
|
||||
# nvm install-latest-npm || die 'nvm install-latest-npm failed: 5'
|
||||
# NPM_VERSION="$(npm --version)"
|
||||
# [ "${NPM_VERSION}" = '1.3.26' ] || die "node 0.6.21 updates to ${NPM_VERSION}; expected v1.3.26"
|
||||
|
@ -5,29 +5,29 @@ die () { echo "$@" ; exit 1; }
|
||||
\. ../../nvm.sh
|
||||
|
||||
# Remove the stuff we're clobbering.
|
||||
[ -e "${NVM_DIR}/v0.9.7" ] && rm -R "${NVM_DIR}/v0.9.7"
|
||||
[ -e "${NVM_DIR}/v0.9.12" ] && rm -R "${NVM_DIR}/v0.9.12"
|
||||
[ -e "${NVM_DIR}/versions/node/v9.7.0" ] && rm -R "${NVM_DIR}/versions/node/v9.7.0"
|
||||
[ -e "${NVM_DIR}/versions/node/v9.10.0" ] && rm -R "${NVM_DIR}/versions/node/v9.10.0"
|
||||
|
||||
# Install from binary
|
||||
nvm install 0.9.7
|
||||
nvm install 9.7.0
|
||||
|
||||
# Check
|
||||
[ -d "${NVM_DIR}/v0.9.7" ] || die "nvm install 0.9.7 didn't install"
|
||||
[ -d "${NVM_DIR}/versions/node/v9.7.0" ] || die "nvm install 9.7.0 didn't install"
|
||||
|
||||
nvm use 0.9.7
|
||||
nvm use 9.7.0
|
||||
|
||||
node --version | grep v0.9.7 > /dev/null || die "nvm use 0.9.7 failed"
|
||||
node --version | grep v9.7.0 > /dev/null || die "nvm use 9.7.0 failed"
|
||||
|
||||
npm install -g object-is@0.0.0 || die "npm install -g object-is failed"
|
||||
npm list --global | grep object-is > /dev/null || die "object-is isn't installed"
|
||||
|
||||
nvm ls 0.9 | grep v0.9.7 > /dev/null || die "nvm ls 0.9 didn't show v0.9.7"
|
||||
nvm ls 9 | grep v9.7.0 > /dev/null || die "nvm ls 9 didn't show v9.7.0"
|
||||
|
||||
nvm install 0.9.12 --reinstall-packages-from=0.9 || die "nvm install 0.9.12 --reinstall-packages-from=0.9 failed"
|
||||
nvm install 9.10.0 --reinstall-packages-from=9 || die "nvm install 9.10.0 --reinstall-packages-from=9 failed"
|
||||
|
||||
[ -d "${NVM_DIR}/v0.9.12" ] || die "nvm install 0.9.12 didn't install"
|
||||
[ -d "${NVM_DIR}/versions/node/v9.10.0" ] || die "nvm install 9.10.0 didn't install"
|
||||
|
||||
nvm use 0.9
|
||||
node --version | grep v0.9.12 > /dev/null || die "nvm ls 0.9 didn't use v0.9.12"
|
||||
nvm use 9
|
||||
node --version | grep v9.10.0 > /dev/null || die "nvm ls 9 didn't use v9.10.0"
|
||||
|
||||
npm list --global | grep object-is > /dev/null || die "object-is isn't installed"
|
||||
|
@ -4,6 +4,10 @@
|
||||
nvm deactivate
|
||||
nvm uninstall v0.10.7
|
||||
nvm uninstall v4.2.2
|
||||
nvm uninstall v0.9.7
|
||||
nvm uninstall v9.7.0
|
||||
nvm uninstall v0.9.12
|
||||
nvm uninstall v9.10.0
|
||||
|
||||
if [ -f ".nvmrc" ]; then
|
||||
rm .nvmrc
|
||||
|
@ -10,7 +10,7 @@ nvm exec 0.10.29 npm install -g npm@~1.4.11 && nvm install-latest-npm # this is
|
||||
nvm use 0.10.28
|
||||
(cd test-npmlink && npm link)
|
||||
|
||||
EXPECTED_PACKAGES="autoprefixer bower david eslint grunt-cli grunth-cli http-server jshint marked node-gyp npmlist recursive-blame spawn-sync test-npmlink uglify-js"
|
||||
EXPECTED_PACKAGES="autoprefixer bower david grunt-cli grunth-cli http-server jshint marked node-gyp npmlist recursive-blame spawn-sync test-npmlink uglify-js"
|
||||
|
||||
echo "$EXPECTED_PACKAGES yo@1" | sed -e 's/test-npmlink //' | xargs npm install -g --quiet
|
||||
|
||||
|
20
test/sourcing/Sourcing nvm.sh should keep version if one is active
Executable file
20
test/sourcing/Sourcing nvm.sh should keep version if one is active
Executable file
@ -0,0 +1,20 @@
|
||||
#!/bin/sh
|
||||
|
||||
die () { echo "$@" ; exit 1; }
|
||||
|
||||
echo '0.10.1' > ../../alias/default || die "couldn't create default alias"
|
||||
|
||||
\. ../../nvm.sh || die 'sourcing returned nonzero exit code'
|
||||
|
||||
NVM_TARGET=0.10.3
|
||||
NVM_DEFAULT="$(nvm_resolve_local_alias default)"
|
||||
|
||||
[ "_$NVM_DEFAULT" != "_$NVM_TARGET" ] || die "default $NVM_DEFAULT is the same as target $NVM_TARGET"
|
||||
|
||||
nvm use $NVM_TARGET || die "nvm use $NVM_TARGET failed"
|
||||
|
||||
\. ../../nvm.sh || die 'sourcing returned nonzero exit code'
|
||||
|
||||
NVM_CURRENT="$(nvm current)"
|
||||
|
||||
[ "_${NVM_CURRENT#v}" = "_$NVM_TARGET" ] || die "node version not retained after sourcing"
|
@ -2,13 +2,24 @@
|
||||
|
||||
die () { echo "$@" ; exit 1; }
|
||||
|
||||
echo '0.10.1' > ../../alias/default || die 'creation of default alias failed'
|
||||
|
||||
\. ../../nvm.sh || die 'sourcing returned nonzero exit code'
|
||||
\. ../common.sh
|
||||
|
||||
# We need to unload nvm again first, as by the time this test is run,
|
||||
# despite being unloaded in setup, the inherited PATH still contains
|
||||
# an nvm-installed node version. We have to reset NVM_DIR after the unload.
|
||||
\. ../../nvm.sh || die 'sourcing returned nonzero exit code'
|
||||
NVM_DIR_CACHED="$NVM_DIR"
|
||||
nvm unload || die 'unloading returned nonzero exit code'
|
||||
NVM_DIR="$NVM_DIR_CACHED"
|
||||
|
||||
echo '0.10.1' > ../../alias/default || die 'creation of default alias failed'
|
||||
|
||||
# Now to begin the real test
|
||||
\. ../../nvm.sh || die 'sourcing returned nonzero exit code'
|
||||
|
||||
NVM_LS_CURRENT_NOT_GREPPED="$(nvm ls current | strip_colors)"
|
||||
NVM_LS_CURRENT="$(nvm ls current | strip_colors | \grep -o v0.10.1)"
|
||||
[ "_$NVM_LS_CURRENT" = '_v0.10.1' ] || die "'nvm ls current' did not return '-> v0.10.1', got '$NVM_LS_CURRENT'"
|
||||
[ "_$NVM_LS_CURRENT" = '_v0.10.1' ] || die "'nvm ls current' did not return '-> v0.10.1', got '$NVM_LS_CURRENT_NOT_GREPPED'"
|
||||
|
||||
# NVM_LS_CURRENT_COLORED="$(nvm ls current | sed -n l)"
|
||||
|
@ -9,5 +9,6 @@ rm -rf ../../v0.9.12
|
||||
|
||||
\. ../../nvm.sh
|
||||
nvm install 0.10.1 || echo >&2 'nvm install 0.10.1 failed'
|
||||
nvm install 0.10.3 || echo >&2 'nvm install 0.10.3 failed'
|
||||
nvm unalias default || 'removing default alias failed'
|
||||
nvm unload || echo >&2 'nvm unload failed'
|
||||
|
@ -3,4 +3,5 @@
|
||||
rm -rf ../../alias
|
||||
rm -rf ../../v0.10.1
|
||||
rm -rf ../../v0.10.2
|
||||
rm -rf ../../v0.10.3
|
||||
rm -f ../../.nvmrc
|
||||
|
Loading…
Reference in New Issue
Block a user