mirror of
https://github.com/nvm-sh/nvm.git
synced 2025-09-06 04:30:14 +00:00
Compare commits
67 Commits
Author | SHA1 | Date | |
---|---|---|---|
![]() |
7bbcd3a977 | ||
![]() |
e728577627 | ||
![]() |
c33074cb54 | ||
![]() |
689c52c90d | ||
![]() |
5904d41b25 | ||
![]() |
afba4e08fd | ||
![]() |
ce82109229 | ||
![]() |
516e553093 | ||
![]() |
e28a257f23 | ||
![]() |
2d8adac785 | ||
![]() |
bf4bf008ac | ||
![]() |
5f5eb47f14 | ||
![]() |
d09b84de3c | ||
![]() |
4b6075e29b | ||
![]() |
781f72c9c8 | ||
![]() |
6ec62fcc79 | ||
![]() |
fc17aaafb1 | ||
![]() |
ac912afc4c | ||
![]() |
b9f15b0ab0 | ||
![]() |
d30c0fe146 | ||
![]() |
21534ec0c9 | ||
![]() |
3cdec8e875 | ||
![]() |
cec1c38a84 | ||
![]() |
ad0a5cd8c7 | ||
![]() |
1c9a5ba2d8 | ||
![]() |
fd1f2cdf66 | ||
![]() |
2d529cc8b7 | ||
![]() |
9b91734f0b | ||
![]() |
0f5997f754 | ||
![]() |
7a339bdd3c | ||
![]() |
08aa09e664 | ||
![]() |
8284cd0f81 | ||
![]() |
e421a0dc5f | ||
![]() |
601490ac1d | ||
![]() |
4748b3a236 | ||
![]() |
2a61569881 | ||
![]() |
a7b1f93592 | ||
![]() |
ca89cceb99 | ||
![]() |
7b6e06e556 | ||
![]() |
370dfcab7c | ||
![]() |
44d5776110 | ||
![]() |
d49443e1fb | ||
![]() |
e99645f402 | ||
![]() |
8f76b35370 | ||
![]() |
a2633e5980 | ||
![]() |
6c89e96f67 | ||
![]() |
1ee708b79b | ||
![]() |
035334fd34 | ||
![]() |
2edc86d574 | ||
![]() |
9d23f609ad | ||
![]() |
9d9cfdc2c8 | ||
![]() |
1931f7f3f8 | ||
![]() |
2f2c6f0727 | ||
![]() |
0eef553a88 | ||
![]() |
5135577a3c | ||
![]() |
5bc6e289ce | ||
![]() |
d0c6b87b2e | ||
![]() |
66b214651f | ||
![]() |
acfc459bc5 | ||
![]() |
fc16d20766 | ||
![]() |
4cdf356cdc | ||
![]() |
c918e570b6 | ||
![]() |
5dc7af6285 | ||
![]() |
f9565ff675 | ||
![]() |
cea0e88489 | ||
![]() |
5aad535d53 | ||
![]() |
fcdd1ef431 |
1
.gitignore
vendored
1
.gitignore
vendored
@@ -9,6 +9,7 @@ test/bak
|
||||
.urchin_stdout
|
||||
|
||||
node_modules/
|
||||
npm-debug.log
|
||||
|
||||
.DS_Store
|
||||
current
|
||||
|
28
.travis.yml
28
.travis.yml
@@ -1,24 +1,32 @@
|
||||
language: c # defaults to ruby
|
||||
install:
|
||||
- sudo apt-get install ksh zsh -y
|
||||
- sudo apt-get install zsh -y # ksh
|
||||
- (mkdir /tmp/urchin && cd /tmp/urchin && curl -s "$(curl -s http://registry.npmjs.org/urchin | grep -Eo '"tarball":\s*"[^"]+"' | tail -n 1 | awk -F\" '{ print $4 }')" -O && tar -x -f urchin*)
|
||||
- chmod +x /tmp/urchin/package/urchin
|
||||
- '[ -z "$WITHOUT_CURL" ] || sudo apt-get remove curl -y'
|
||||
before_script:
|
||||
- '[ -n "$WITHOUT_CURL" ] || curl -o /tmp/urchin https://raw.githubusercontent.com/scraperwiki/urchin/master/urchin'
|
||||
- '[ -z "$WITHOUT_CURL" ] || wget -O /tmp/urchin https://raw.githubusercontent.com/scraperwiki/urchin/master/urchin'
|
||||
- chmod +x /tmp/urchin
|
||||
script:
|
||||
- NVM_DIR=$TRAVIS_BUILD_DIR make TEST_SUITE=$TEST_SUITE URCHIN=/tmp/urchin $SHELL
|
||||
- NVM_DIR=$TRAVIS_BUILD_DIR make TEST_SUITE=$TEST_SUITE URCHIN=/tmp/urchin/package/urchin test-$SHELL
|
||||
env:
|
||||
- SHELL=sh TEST_SUITE=install_script
|
||||
- SHELL=dash TEST_SUITE=install_script
|
||||
- SHELL=bash TEST_SUITE=install_script
|
||||
- SHELL=zsh TEST_SUITE=install_script
|
||||
# - SHELL=ksh TEST_SUITE=install_script
|
||||
- SHELL=sh TEST_SUITE=fast
|
||||
- SHELL=dash TEST_SUITE=fast
|
||||
- SHELL=bash TEST_SUITE=fast
|
||||
- SHELL=zsh TEST_SUITE=fast
|
||||
- SHELL=ksh TEST_SUITE=fast
|
||||
# - SHELL=ksh TEST_SUITE=fast
|
||||
- SHELL=sh TEST_SUITE=slow
|
||||
- SHELL=dash TEST_SUITE=slow
|
||||
- SHELL=bash TEST_SUITE=slow
|
||||
- SHELL=zsh TEST_SUITE=slow
|
||||
- SHELL=ksh TEST_SUITE=slow
|
||||
# - SHELL=ksh TEST_SUITE=slow
|
||||
- SHELL=sh TEST_SUITE=sourcing
|
||||
- SHELL=dash TEST_SUITE=sourcing
|
||||
- SHELL=bash TEST_SUITE=sourcing
|
||||
- SHELL=zsh TEST_SUITE=sourcing
|
||||
# - SHELL=ksh TEST_SUITE=sourcing
|
||||
- SHELL=sh TEST_SUITE=installation
|
||||
- SHELL=sh TEST_SUITE=installation WITHOUT_CURL=1
|
||||
- SHELL=dash TEST_SUITE=installation
|
||||
@@ -27,5 +35,5 @@ env:
|
||||
- SHELL=bash TEST_SUITE=installation WITHOUT_CURL=1
|
||||
- SHELL=zsh TEST_SUITE=installation
|
||||
- SHELL=zsh TEST_SUITE=installation WITHOUT_CURL=1
|
||||
- SHELL=ksh TEST_SUITE=installation
|
||||
- SHELL=ksh TEST_SUITE=installation WITHOUT_CURL=1
|
||||
# - SHELL=ksh TEST_SUITE=installation
|
||||
# - SHELL=ksh TEST_SUITE=installation WITHOUT_CURL=1
|
||||
|
85
Makefile
85
Makefile
@@ -1,26 +1,77 @@
|
||||
URCHIN=`which urchin`
|
||||
SHELLS=sh bash dash ksh zsh
|
||||
TEST_SUITE=fast
|
||||
# Note: With Travis CI:
|
||||
# - the path to urchin is passed via the command line.
|
||||
# - the other utilties are NOT needed, so we skip the test for their existence.
|
||||
URCHIN := urchin
|
||||
ifeq ($(findstring /,$(URCHIN)),) # urchin path was NOT passed in.
|
||||
# Add the local npm packages' bin folder to the PATH, so that `make` can find them, when invoked directly.
|
||||
export PATH := $(shell printf '%s' "$$(npm bin):$$PATH")
|
||||
# The list of all supporting utilities, installed with `npm install`.
|
||||
UTILS := $(URCHIN) replace semver
|
||||
# Make sure that all required utilities can be located.
|
||||
UTIL_CHECK := $(or $(shell PATH="$(PATH)" which $(UTILS) >/dev/null && echo 'ok'),$(error Did you forget to run `npm install` after cloning the repo? At least one of the required supporting utilities not found: $(UTILS)))
|
||||
endif
|
||||
# The files that need updating when incrementing the version number.
|
||||
VERSIONED_FILES := nvm.sh install.sh README.markdown package.json
|
||||
# Define all shells to test with. Can be overridden with `make SHELLS=... <target>`.
|
||||
SHELLS := sh bash dash zsh # ksh (#574)
|
||||
# Generate 'test-<shell>' target names from specified shells.
|
||||
# The embedded shell names are extracted on demand inside the recipes.
|
||||
SHELL_TARGETS := $(addprefix test-,$(SHELLS))
|
||||
# Determine if the installed Urchin version supports cross-shell testing, based on whether its usage information mentions the -s option.
|
||||
HAVE_CROSS_SHELL_TESTS := $(shell PATH="$(PATH)" $(URCHIN) -h | grep -qE '(^|\s)-s\s' && echo 'yes')
|
||||
NO_CROSS_SHELL_TESTS_WARNING := $(if $(HAVE_CROSS_SHELL_TESTS),,$(warning WARNING: This version of Urchin does not support cross-shell tests. All tests will run with 'sh'.))
|
||||
# Define the default test suite(s). This can be overridden with `make TEST_SUITE=<...> <target>`.
|
||||
# Test suites are the names of subfolders of './test'.
|
||||
TEST_SUITE := $(shell find ./test/* -type d -prune -exec basename {} \;)
|
||||
|
||||
.PHONY: $(SHELLS) test verify-tag release
|
||||
|
||||
$(SHELLS):
|
||||
@printf '\n\033[0;34m%s\033[0m\n' "Running tests in $@"
|
||||
@$@ $(URCHIN) -f test/$(TEST_SUITE)
|
||||
# Default target (by virtue of being the first non '.'-prefixed in the file).
|
||||
.PHONY: _no-target-specified
|
||||
_no-target-specified:
|
||||
$(error Please specify the target to make - `make list` shows targets. Alternatively, use `npm test` to run the default tests; `npm run` shows all tests)
|
||||
|
||||
test: $(SHELLS)
|
||||
@$(URCHIN) -f test/slow
|
||||
# Lists all targets defined in this makefile.
|
||||
.PHONY: list
|
||||
list:
|
||||
@$(MAKE) -pRrn : -f $(MAKEFILE_LIST) 2>/dev/null | awk -v RS= -F: '/^# File/,/^# Finished Make data base/ {if ($$1 !~ "^[#.]") {print $$1}}' | egrep -v -e '^[^[:alnum:]]' -e '^$@$$' | sort
|
||||
|
||||
default: test
|
||||
# Set of test-<shell> targets; each runs the specified test suites for a single shell.
|
||||
# Note that preexisting NVM_* variables are unset to avoid interfering with tests, except when running the Travis tests (where NVM_DIR must be passed in and the env. is assumed to be pristine).
|
||||
.PHONY: $(SHELL_TARGETS)
|
||||
$(SHELL_TARGETS):
|
||||
@shell='$@'; shell=$${shell##*-}; which "$$shell" >/dev/null || { printf '\033[0;31m%s\033[0m\n' "WARNING: Cannot test with shell '$$shell': not found." >&2; exit 0; } && \
|
||||
printf '\n\033[0;34m%s\033[0m\n' "Running tests in $$shell"; \
|
||||
[ -z "$$TRAVIS_BUILD_DIR" ] && for v in $$(export -p | awk -F'[ =]' '$$2 ~ "^NVM_" { print $$2 }'); do unset $$v; done && unset v; \
|
||||
[ "$(HAVE_CROSS_SHELL_TESTS)" = 'yes' ] && targetShellOpt="-s $$shell" || targetShellOpt=; \
|
||||
for suite in $(TEST_SUITE); do $(URCHIN) -f $$targetShellOpt test/$$suite || exit; done
|
||||
|
||||
verify-tag:
|
||||
# All-tests target: invokes the specified test suites for ALL shells defined in $(SHELLS).
|
||||
.PHONY: test
|
||||
test: $(SHELL_TARGETS)
|
||||
|
||||
.PHONY: _ensure-tag
|
||||
_ensure-tag:
|
||||
ifndef TAG
|
||||
$(error TAG is undefined)
|
||||
$(error Please invoke with `make TAG=<new-version> release`, where <new-version> is either an increment specifier (patch, minor, major, prepatch, preminor, premajor, prerelease), or an explicit major.minor.patch version number)
|
||||
endif
|
||||
|
||||
release: verify-tag
|
||||
@ OLD_TAG=`git describe --abbrev=0 --tags` && \
|
||||
replace "$${OLD_TAG/v/}" "$(TAG)" -- nvm.sh install.sh README.markdown package.json && \
|
||||
git commit -m "v$(TAG)" nvm.sh install.sh README.markdown package.json && \
|
||||
git tag "v$(TAG)"
|
||||
# Ensures that the git workspace is clean.
|
||||
.PHONY: _ensure-clean
|
||||
_ensure-clean:
|
||||
@[ -z "$$(git status --porcelain --untracked-files=no || echo err)" ] || { echo "Workspace is not clean; please commit changes first." >&2; exit 2; }
|
||||
|
||||
# Makes a release; invoke with `make TAG=<versionOrIncrementSpec> release`.
|
||||
.PHONY: release
|
||||
release: _ensure-tag _ensure-clean
|
||||
@old_ver=`git describe --abbrev=0 --tags --match 'v[0-9]*.[0-9]*.[0-9]*'` || { echo "Failed to determine current version." >&2; exit 1; }; old_ver=$${old_ver#v}; \
|
||||
new_ver=`echo "$(TAG)" | sed 's/^v//'`; new_ver=$${new_ver:-patch}; \
|
||||
if printf "$$new_ver" | grep -q '^[0-9]'; then \
|
||||
semver "$$new_ver" >/dev/null || { echo 'Invalid version number specified: $(TAG) - must be major.minor.patch' >&2; exit 2; }; \
|
||||
semver -r "> $$old_ver" "$$new_ver" >/dev/null || { echo 'Invalid version number specified: $(TAG) - must be HIGHER than current one.' >&2; exit 2; } \
|
||||
else \
|
||||
new_ver=`semver -i "$$new_ver" "$$old_ver"` || { echo 'Invalid version-increment specifier: $(TAG)' >&2; exit 2; } \
|
||||
fi; \
|
||||
printf "=== Bumping version **$$old_ver** to **$$new_ver** before committing and tagging:\n=== TYPE 'proceed' TO PROCEED, anything else to abort: " && read response && [ "$$response" = 'proceed' ] || { echo 'Aborted.' >&2; exit 2; }; \
|
||||
replace "$$old_ver" "$$new_ver" -- $(VERSIONED_FILES) && \
|
||||
git commit -m "v$$new_ver" $(VERSIONED_FILES) && \
|
||||
git tag -a -m "v$$new_ver" "v$$new_ver"
|
||||
|
@@ -2,27 +2,32 @@
|
||||
|
||||
## Installation
|
||||
|
||||
First you'll need to make sure your system has a c++ compiler. For OSX, XCode will work, for Ubuntu, the build-essential and libssl-dev packages work.
|
||||
First you'll need to make sure your system has a c++ compiler. For OSX, XCode will work, for Ubuntu, the build-essential and libssl-dev packages work.
|
||||
|
||||
Note: `nvm` does not support Windows (see [#284](https://github.com/creationix/nvm/issues/284)). Two alternatives exist, which are not supported nor developed by us:
|
||||
- [nvmw](http://github.com/hakobera/nvmw)
|
||||
- [nvm-windows](http://github.com/coreybutler/nvm-windows)
|
||||
|
||||
### Install script
|
||||
|
||||
To install you could use the [install script][2] using cURL:
|
||||
|
||||
curl https://raw.githubusercontent.com/creationix/nvm/v0.17.2/install.sh | bash
|
||||
curl https://raw.githubusercontent.com/creationix/nvm/v0.19.0/install.sh | bash
|
||||
|
||||
or Wget:
|
||||
|
||||
wget -qO- https://raw.githubusercontent.com/creationix/nvm/v0.17.2/install.sh | bash
|
||||
wget -qO- https://raw.githubusercontent.com/creationix/nvm/v0.19.0/install.sh | bash
|
||||
|
||||
<sub>The script clones the nvm repository to `~/.nvm` and adds the source line to your profile (`~/.bash_profile`, `~/.zshrc` or `~/.profile`).</sub>
|
||||
|
||||
You can customize the install source, directory and profile using the `NVM_SOURCE`, `NVM_DIR` and `PROFILE` variables. Eg: `curl ... | NVM_DIR=/usr/local/nvm bash` for a global install.
|
||||
You can customize the install source, directory and profile using the `NVM_SOURCE`, `NVM_DIR`, and `PROFILE` variables.
|
||||
Eg: `curl ... | NVM_DIR=/usr/local/nvm bash` for a global install.
|
||||
|
||||
<sub>*NB. The installer can use Git, curl, or wget to download NVM, whatever is available.*</sub>
|
||||
<sub>*NB. The installer can use `git`, `curl`, or `wget` to download `nvm`, whatever is available.*</sub>
|
||||
|
||||
### Manual install
|
||||
|
||||
For manual install create a folder somewhere in your filesystem with the `nvm.sh` file inside it. I put mine in a folder called `nvm`.
|
||||
For manual install create a folder somewhere in your filesystem with the `nvm.sh` file inside it. I put mine in a folder called `nvm`.
|
||||
|
||||
Or if you have `git` installed, then just clone it, and check out the latest version:
|
||||
|
||||
@@ -56,6 +61,18 @@ Or, you can run any arbitrary command in a subshell with the desired version of
|
||||
|
||||
nvm exec 0.10 node --version
|
||||
|
||||
In place of a version pointer like "0.10", you can use the special default aliases "stable" and "unstable":
|
||||
|
||||
nvm install stable
|
||||
nvm install unstable
|
||||
nvm use stable
|
||||
nvm run unstable --version
|
||||
|
||||
If you want to use the system-installed version of node, you can use the special default alias "system":
|
||||
|
||||
nvm use system
|
||||
nvm run system --version
|
||||
|
||||
If you want to see what versions are installed:
|
||||
|
||||
nvm ls
|
||||
@@ -70,7 +87,7 @@ To restore your PATH, you can deactivate it.
|
||||
|
||||
To set a default Node version to be used in any new shell, use the alias 'default':
|
||||
|
||||
nvm alias default 0.10
|
||||
nvm alias default stable
|
||||
|
||||
To use a mirror of the node binaries, set `$NVM_NODEJS_ORG_MIRROR`:
|
||||
|
||||
@@ -79,7 +96,7 @@ To use a mirror of the node binaries, set `$NVM_NODEJS_ORG_MIRROR`:
|
||||
|
||||
NVM_NODEJS_ORG_MIRROR=http://nodejs.org/dist nvm install 0.10
|
||||
|
||||
`nvm use` will, by defaut, create a "current" symlink. Set `$NVM_SYMLINK_CURRENT` to any value other than "true" to disable this behavior.
|
||||
`nvm use` will not, by default, create a "current" symlink. Set `$NVM_SYMLINK_CURRENT` to "true" to enable this behavior, which is sometimes useful for IDEs.
|
||||
|
||||
## License
|
||||
|
||||
@@ -129,8 +146,9 @@ Put the above sourcing line just below the sourcing line for NVM in your profile
|
||||
nvm
|
||||
|
||||
$ nvm [tab][tab]
|
||||
alias copy-packages help list run uninstall version
|
||||
clear-cache deactivate install ls unalias use
|
||||
alias deactivate install ls run unload
|
||||
clear-cache exec list ls-remote unalias use
|
||||
current help list-remote reinstall-packages uninstall version
|
||||
|
||||
nvm alias
|
||||
|
||||
@@ -169,7 +187,7 @@ After the v0.8.6 release of node, nvm tries to install from binary packages. But
|
||||
nvm install -s 0.8.6
|
||||
|
||||
[1]: https://github.com/creationix/nvm.git
|
||||
[2]: https://github.com/creationix/nvm/blob/v0.17.2/install.sh
|
||||
[2]: https://github.com/creationix/nvm/blob/v0.19.0/install.sh
|
||||
[3]: https://travis-ci.org/creationix/nvm
|
||||
[Urchin]: https://github.com/scraperwiki/urchin
|
||||
|
||||
|
@@ -18,10 +18,10 @@ __nvm_commands ()
|
||||
current_word="${COMP_WORDS[COMP_CWORD]}"
|
||||
|
||||
COMMANDS='\
|
||||
help install uninstall use run exec\
|
||||
alias unalias copy-packages
|
||||
current list ls list-remote ls-remote\
|
||||
clear-cache deactivate unload
|
||||
help install uninstall use run exec \
|
||||
alias unalias reinstall-packages \
|
||||
current list ls list-remote ls-remote \
|
||||
clear-cache deactivate unload \
|
||||
version'
|
||||
|
||||
if [ ${#COMP_WORDS[@]} == 4 ]; then
|
||||
|
183
install.sh
183
install.sh
@@ -11,6 +11,35 @@ if [ -z "$NVM_DIR" ]; then
|
||||
NVM_DIR="$HOME/.nvm"
|
||||
fi
|
||||
|
||||
#
|
||||
# Outputs the location to NVM depending on:
|
||||
# * The availability of $NVM_SOURCE
|
||||
# * The method used ("script" or "git" in the script, defaults to "git")
|
||||
# NVM_SOURCE always takes precedence
|
||||
#
|
||||
nvm_source() {
|
||||
local NVM_METHOD
|
||||
NVM_METHOD="$1"
|
||||
if [ -z "$NVM_SOURCE" ]; then
|
||||
local NVM_SOURCE
|
||||
else
|
||||
echo "$NVM_SOURCE"
|
||||
return 0
|
||||
fi
|
||||
if [ "_$NVM_METHOD" = "_script" ]; then
|
||||
NVM_SOURCE="https://raw.githubusercontent.com/creationix/nvm/v0.19.0/nvm.sh"
|
||||
elif [ "_$NVM_METHOD" = "_script-nvm-exec" ]; then
|
||||
NVM_SOURCE="https://raw.githubusercontent.com/creationix/nvm/v0.19.0/nvm-exec"
|
||||
elif [ "_$NVM_METHOD" = "_git" ] || [ -z "$NVM_METHOD" ]; then
|
||||
NVM_SOURCE="https://github.com/creationix/nvm.git"
|
||||
else
|
||||
echo >&2 "Unexpected value \"$NVM_METHOD\" for \$NVM_METHOD"
|
||||
return 1
|
||||
fi
|
||||
echo "$NVM_SOURCE"
|
||||
return 0
|
||||
}
|
||||
|
||||
nvm_download() {
|
||||
if nvm_has "curl"; then
|
||||
curl $*
|
||||
@@ -27,10 +56,6 @@ nvm_download() {
|
||||
}
|
||||
|
||||
install_nvm_from_git() {
|
||||
if [ -z "$NVM_SOURCE" ]; then
|
||||
NVM_SOURCE="https://github.com/creationix/nvm.git"
|
||||
fi
|
||||
|
||||
if [ -d "$NVM_DIR/.git" ]; then
|
||||
echo "=> nvm is already installed in $NVM_DIR, trying to update"
|
||||
printf "\r=> "
|
||||
@@ -42,16 +67,17 @@ install_nvm_from_git() {
|
||||
echo "=> Downloading nvm from git to '$NVM_DIR'"
|
||||
printf "\r=> "
|
||||
mkdir -p "$NVM_DIR"
|
||||
git clone "$NVM_SOURCE" "$NVM_DIR"
|
||||
git clone "$(nvm_source "git")" "$NVM_DIR"
|
||||
fi
|
||||
cd "$NVM_DIR" && git checkout v0.17.2 && git branch -D master >/dev/null 2>&1
|
||||
cd "$NVM_DIR" && git checkout v0.19.0 && git branch -D master >/dev/null 2>&1
|
||||
return
|
||||
}
|
||||
|
||||
install_nvm_as_script() {
|
||||
if [ -z "$NVM_SOURCE" ]; then
|
||||
NVM_SOURCE="https://raw.githubusercontent.com/creationix/nvm/v0.17.2/nvm.sh"
|
||||
fi
|
||||
local NVM_SOURCE
|
||||
NVM_SOURCE=$(nvm_source "script")
|
||||
local NVM_EXEC_SOURCE
|
||||
NVM_EXEC_SOURCE=$(nvm_source "script-nvm-exec")
|
||||
|
||||
# Downloading to $NVM_DIR
|
||||
mkdir -p "$NVM_DIR"
|
||||
@@ -61,71 +87,98 @@ install_nvm_as_script() {
|
||||
echo "=> Downloading nvm as script to '$NVM_DIR'"
|
||||
fi
|
||||
nvm_download -s "$NVM_SOURCE" -o "$NVM_DIR/nvm.sh" || {
|
||||
echo >&2 "Failed to download '$NVM_SOURCE'.."
|
||||
echo >&2 "Failed to download '$NVM_SOURCE'"
|
||||
return 1
|
||||
}
|
||||
nvm_download -s "$NVM_EXEC_SOURCE" -o "$NVM_DIR/nvm-exec" || {
|
||||
echo >&2 "Failed to download '$NVM_EXEC_SOURCE'"
|
||||
return 2
|
||||
}
|
||||
chmod a+x "$NVM_DIR/nvm-exec" || {
|
||||
echo >&2 "Failed to mark '$NVM_DIR/nvm-exec' as executable"
|
||||
return 3
|
||||
}
|
||||
}
|
||||
|
||||
if [ -z "$METHOD" ]; then
|
||||
# Autodetect install method
|
||||
if nvm_has "git"; then
|
||||
install_nvm_from_git
|
||||
elif nvm_has "nvm_download"; then
|
||||
install_nvm_as_script
|
||||
else
|
||||
echo >&2 "You need git, curl, or wget to install nvm"
|
||||
exit 1
|
||||
fi
|
||||
elif [ "~$METHOD" = "~git" ]; then
|
||||
if ! nvm_has "git"; then
|
||||
echo >&2 "You need git to install nvm"
|
||||
exit 1
|
||||
fi
|
||||
install_nvm_from_git
|
||||
elif [ "~$METHOD" = "~script" ]; then
|
||||
if ! nvm_has "nvm_download"; then
|
||||
echo >&2 "You need curl or wget to install nvm"
|
||||
exit 1
|
||||
fi
|
||||
install_nvm_as_script
|
||||
fi
|
||||
|
||||
echo
|
||||
|
||||
# Detect profile file if not specified as environment variable (eg: PROFILE=~/.myprofile).
|
||||
if [ -z "$PROFILE" ]; then
|
||||
if [ -f "$HOME/.bashrc" ]; then
|
||||
PROFILE="$HOME/.bashrc"
|
||||
#
|
||||
# Detect profile file if not specified as environment variable
|
||||
# (eg: PROFILE=~/.myprofile)
|
||||
# The echo'ed path is guaranteed to be an existing file
|
||||
# Otherwise, an empty string is returned
|
||||
#
|
||||
nvm_detect_profile() {
|
||||
if [ -f "$PROFILE" ]; then
|
||||
echo "$PROFILE"
|
||||
elif [ -f "$HOME/.bashrc" ]; then
|
||||
echo "$HOME/.bashrc"
|
||||
elif [ -f "$HOME/.bash_profile" ]; then
|
||||
PROFILE="$HOME/.bash_profile"
|
||||
echo "$HOME/.bash_profile"
|
||||
elif [ -f "$HOME/.zshrc" ]; then
|
||||
PROFILE="$HOME/.zshrc"
|
||||
echo "$HOME/.zshrc"
|
||||
elif [ -f "$HOME/.profile" ]; then
|
||||
PROFILE="$HOME/.profile"
|
||||
echo "$HOME/.profile"
|
||||
fi
|
||||
fi
|
||||
}
|
||||
|
||||
SOURCE_STR="\nexport NVM_DIR=\"$NVM_DIR\"\n[ -s \"\$NVM_DIR/nvm.sh\" ] && . \"\$NVM_DIR/nvm.sh\" # This loads nvm"
|
||||
|
||||
if [ -z "$PROFILE" ] || [ ! -f "$PROFILE" ] ; then
|
||||
if [ -z "$PROFILE" ]; then
|
||||
echo "=> Profile not found. Tried ~/.bashrc, ~/.bash_profile, ~/.zshrc, and ~/.profile."
|
||||
echo "=> Create one of them and run this script again"
|
||||
else
|
||||
echo "=> Profile $PROFILE not found"
|
||||
echo "=> Create it (touch $PROFILE) and run this script again"
|
||||
nvm_do_install() {
|
||||
if [ -z "$METHOD" ]; then
|
||||
# Autodetect install method
|
||||
if nvm_has "git"; then
|
||||
install_nvm_from_git
|
||||
elif nvm_has "nvm_download"; then
|
||||
install_nvm_as_script
|
||||
else
|
||||
echo >&2 "You need git, curl, or wget to install nvm"
|
||||
exit 1
|
||||
fi
|
||||
elif [ "~$METHOD" = "~git" ]; then
|
||||
if ! nvm_has "git"; then
|
||||
echo >&2 "You need git to install nvm"
|
||||
exit 1
|
||||
fi
|
||||
install_nvm_from_git
|
||||
elif [ "~$METHOD" = "~script" ]; then
|
||||
if ! nvm_has "nvm_download"; then
|
||||
echo >&2 "You need curl or wget to install nvm"
|
||||
exit 1
|
||||
fi
|
||||
install_nvm_as_script
|
||||
fi
|
||||
echo " OR"
|
||||
echo "=> Append the following lines to the correct file yourself:"
|
||||
printf "$SOURCE_STR"
|
||||
|
||||
echo
|
||||
else
|
||||
if ! grep -qc 'nvm.sh' "$PROFILE"; then
|
||||
echo "=> Appending source string to $PROFILE"
|
||||
printf "$SOURCE_STR\n" >> "$PROFILE"
|
||||
else
|
||||
echo "=> Source string already in $PROFILE"
|
||||
fi
|
||||
fi
|
||||
|
||||
echo "=> Close and reopen your terminal to start using nvm"
|
||||
local NVM_PROFILE
|
||||
NVM_PROFILE=$(nvm_detect_profile)
|
||||
|
||||
SOURCE_STR="\nexport NVM_DIR=\"$NVM_DIR\"\n[ -s \"\$NVM_DIR/nvm.sh\" ] && . \"\$NVM_DIR/nvm.sh\" # This loads nvm"
|
||||
|
||||
if [ -z "$NVM_PROFILE" ] ; then
|
||||
echo "=> Profile not found. Tried $NVM_PROFILE (as defined in \$PROFILE), ~/.bashrc, ~/.bash_profile, ~/.zshrc, and ~/.profile."
|
||||
echo "=> Create one of them and run this script again"
|
||||
echo "=> Create it (touch $NVM_PROFILE) and run this script again"
|
||||
echo " OR"
|
||||
echo "=> Append the following lines to the correct file yourself:"
|
||||
printf "$SOURCE_STR"
|
||||
echo
|
||||
else
|
||||
if ! grep -qc 'nvm.sh' "$NVM_PROFILE"; then
|
||||
echo "=> Appending source string to $NVM_PROFILE"
|
||||
printf "$SOURCE_STR\n" >> "$NVM_PROFILE"
|
||||
else
|
||||
echo "=> Source string already in $NVM_PROFILE"
|
||||
fi
|
||||
fi
|
||||
|
||||
echo "=> Close and reopen your terminal to start using nvm"
|
||||
nvm_reset
|
||||
}
|
||||
|
||||
#
|
||||
# Unsets the various functions defined
|
||||
# during the execution of the install script
|
||||
#
|
||||
nvm_reset() {
|
||||
unset -f nvm_do_install nvm_has nvm_download install_nvm_as_script install_nvm_from_git nvm_reset nvm_detect_profile
|
||||
}
|
||||
|
||||
[ "_$NVM_ENV" = "_testing" ] || nvm_do_install
|
||||
|
299
nvm.sh
299
nvm.sh
@@ -43,14 +43,14 @@ if [ -z "$NVM_DIR" ]; then
|
||||
if [ -n "$BASH_SOURCE" ]; then
|
||||
NVM_SCRIPT_SOURCE="${BASH_SOURCE[0]}"
|
||||
fi
|
||||
export NVM_DIR=$(cd $NVM_CD_FLAGS $(dirname "${NVM_SCRIPT_SOURCE:-$0}") > /dev/null && pwd)
|
||||
export NVM_DIR=$(cd $NVM_CD_FLAGS $(dirname "${NVM_SCRIPT_SOURCE:-$0}") > /dev/null && \pwd)
|
||||
fi
|
||||
unset NVM_SCRIPT_SOURCE 2> /dev/null
|
||||
|
||||
|
||||
# Setup mirror location if not already set
|
||||
if [ -z "$NVM_NODEJS_ORG_MIRROR" ]; then
|
||||
export NVM_NODEJS_ORG_MIRROR="http://nodejs.org/dist"
|
||||
export NVM_NODEJS_ORG_MIRROR="https://nodejs.org/dist"
|
||||
fi
|
||||
|
||||
nvm_tree_contains_path() {
|
||||
@@ -234,6 +234,24 @@ nvm_binary_available() {
|
||||
nvm_version_greater_than_or_equal_to "$1" "$FIRST_VERSION_WITH_BINARY"
|
||||
}
|
||||
|
||||
nvm_alias() {
|
||||
local ALIAS
|
||||
ALIAS="$1"
|
||||
if [ -z "$ALIAS" ]; then
|
||||
echo >&2 'An alias is required.'
|
||||
return 1
|
||||
fi
|
||||
|
||||
local NVM_ALIAS_PATH
|
||||
NVM_ALIAS_PATH="$NVM_DIR/alias/$ALIAS"
|
||||
if [ ! -f "$NVM_ALIAS_PATH" ]; then
|
||||
echo >&2 'Alias does not exist.'
|
||||
return 2
|
||||
fi
|
||||
|
||||
cat "$NVM_ALIAS_PATH"
|
||||
}
|
||||
|
||||
nvm_ls_current() {
|
||||
local NODE_PATH
|
||||
NODE_PATH="$(which node 2> /dev/null)"
|
||||
@@ -252,6 +270,59 @@ nvm_ls_current() {
|
||||
fi
|
||||
}
|
||||
|
||||
nvm_resolve_alias() {
|
||||
if [ -z "$1" ]; then
|
||||
return 1
|
||||
fi
|
||||
|
||||
local PATTERN
|
||||
PATTERN="$1"
|
||||
|
||||
local ALIAS
|
||||
ALIAS="$PATTERN"
|
||||
local ALIAS_TEMP
|
||||
|
||||
local SEEN_ALIASES
|
||||
SEEN_ALIASES="$ALIAS"
|
||||
while true; do
|
||||
ALIAS_TEMP="$(nvm_alias "$ALIAS" 2> /dev/null)"
|
||||
|
||||
if [ -z "$ALIAS_TEMP" ]; then
|
||||
break
|
||||
fi
|
||||
|
||||
if [ -n "$ALIAS_TEMP" ] \
|
||||
&& printf "$SEEN_ALIASES" | \grep -e "^$ALIAS_TEMP$" > /dev/null; then
|
||||
ALIAS="∞"
|
||||
break
|
||||
fi
|
||||
|
||||
SEEN_ALIASES="$SEEN_ALIASES\n$ALIAS_TEMP"
|
||||
ALIAS="$ALIAS_TEMP"
|
||||
done
|
||||
|
||||
if [ -n "$ALIAS" ] && [ "_$ALIAS" != "_$PATTERN" ]; then
|
||||
if [ "_$ALIAS" = "_∞" ]; then
|
||||
echo "$ALIAS"
|
||||
else
|
||||
nvm_version "$ALIAS"
|
||||
fi
|
||||
return 0
|
||||
fi
|
||||
|
||||
if nvm_validate_implicit_alias "$PATTERN" 2> /dev/null ; then
|
||||
local IMPLICIT
|
||||
IMPLICIT="$(nvm_print_implicit_alias local "$PATTERN" 2> /dev/null)"
|
||||
if [ -n "$IMPLICIT" ]; then
|
||||
nvm_version "$IMPLICIT"
|
||||
return $?
|
||||
fi
|
||||
return 3
|
||||
fi
|
||||
|
||||
return 2
|
||||
}
|
||||
|
||||
nvm_ls() {
|
||||
local PATTERN
|
||||
PATTERN=$1
|
||||
@@ -262,10 +333,10 @@ nvm_ls() {
|
||||
return
|
||||
fi
|
||||
|
||||
if [ -f "$NVM_DIR/alias/$PATTERN" ]; then
|
||||
nvm_version "$(cat "$NVM_DIR/alias/$PATTERN")"
|
||||
if nvm_resolve_alias "$PATTERN"; then
|
||||
return
|
||||
fi
|
||||
|
||||
# If it looks like an explicit version, don't do anything funny
|
||||
PATTERN=$(nvm_ensure_version_prefix $PATTERN)
|
||||
if [ "_$(echo "$PATTERN" | cut -c1-1)" = "_v" ] && [ "_$(nvm_num_version_groups "$PATTERN")" = "_3" ]; then
|
||||
@@ -312,12 +383,14 @@ nvm_ls_remote() {
|
||||
local VERSIONS
|
||||
local GREP_OPTIONS
|
||||
GREP_OPTIONS=''
|
||||
if [ -n "$PATTERN" ]; then
|
||||
if nvm_validate_implicit_alias "$PATTERN" 2> /dev/null ; then
|
||||
PATTERN="$(nvm_remote_version "$(nvm_print_implicit_alias remote "$PATTERN")")"
|
||||
elif [ -n "$PATTERN" ]; then
|
||||
PATTERN="$(nvm_ensure_version_prefix "$PATTERN")"
|
||||
else
|
||||
PATTERN=".*"
|
||||
fi
|
||||
VERSIONS=`nvm_download -s $NVM_NODEJS_ORG_MIRROR/ -o - \
|
||||
VERSIONS=`nvm_download -L -s $NVM_NODEJS_ORG_MIRROR/ -o - \
|
||||
| \egrep -o 'v[0-9]+\.[0-9]+\.[0-9]+' \
|
||||
| \grep -w "${PATTERN}" \
|
||||
| sort -t. -u -k 1.2,1n -k 2,2n -k 3,3n`
|
||||
@@ -357,7 +430,7 @@ nvm_print_versions() {
|
||||
echo "$1" | while read VERSION; do
|
||||
if [ "$VERSION" = "$NVM_CURRENT" ]; then
|
||||
FORMAT='\033[0;32m-> %9s\033[0m'
|
||||
elif [ -d "$(nvm_version_path "$VERSION")" ]; then
|
||||
elif [ -d "$(nvm_version_path "$VERSION" 2> /dev/null)" ]; then
|
||||
FORMAT='\033[0;34m%12s\033[0m'
|
||||
elif [ "$VERSION" = "system" ]; then
|
||||
FORMAT='\033[0;33m%12s\033[0m'
|
||||
@@ -368,6 +441,59 @@ nvm_print_versions() {
|
||||
done
|
||||
}
|
||||
|
||||
nvm_validate_implicit_alias() {
|
||||
if [ "_$1" != "_stable" ] && [ "_$1" != "_unstable" ]; then
|
||||
echo "Only implicit aliases 'stable' and 'unstable' are supported." >&2
|
||||
return 1
|
||||
fi
|
||||
}
|
||||
|
||||
nvm_print_implicit_alias() {
|
||||
if [ "_$1" != "_local" ] && [ "_$1" != "_remote" ]; then
|
||||
echo "nvm_print_implicit_alias must be specified with local or remote as the first argument." >&2
|
||||
return 1
|
||||
fi
|
||||
|
||||
if ! nvm_validate_implicit_alias "$2"; then
|
||||
return 2
|
||||
fi
|
||||
|
||||
local LAST_TWO
|
||||
if [ "_$1" = "_local" ]; then
|
||||
LAST_TWO=$(nvm_ls | \grep -e '^v' | cut -c2- | cut -d . -f 1,2 | uniq)
|
||||
else
|
||||
LAST_TWO=$(nvm_ls_remote | \grep -e '^v' | cut -c2- | cut -d . -f 1,2 | uniq)
|
||||
fi
|
||||
local MINOR
|
||||
local STABLE
|
||||
local UNSTABLE
|
||||
local MOD
|
||||
|
||||
local ZHS_HAS_SHWORDSPLIT_UNSET
|
||||
ZHS_HAS_SHWORDSPLIT_UNSET=1
|
||||
if nvm_has "setopt"; then
|
||||
ZHS_HAS_SHWORDSPLIT_UNSET=$(setopt | \grep shwordsplit > /dev/null ; echo $?)
|
||||
setopt shwordsplit
|
||||
fi
|
||||
for MINOR in $LAST_TWO; do
|
||||
MOD=$(expr "$(nvm_normalize_version "$MINOR")" \/ 1000000 \% 2)
|
||||
if [ $MOD -eq 0 ]; then
|
||||
STABLE="$MINOR"
|
||||
elif [ $MOD -eq 1 ]; then
|
||||
UNSTABLE="$MINOR"
|
||||
fi
|
||||
done
|
||||
if [ $ZHS_HAS_SHWORDSPLIT_UNSET -eq 1 ] && nvm_has "unsetopt"; then
|
||||
unsetopt shwordsplit
|
||||
fi
|
||||
|
||||
if [ "_$2" = "_stable" ]; then
|
||||
echo $STABLE
|
||||
elif [ "_$2" = "_unstable" ]; then
|
||||
echo $UNSTABLE
|
||||
fi
|
||||
}
|
||||
|
||||
nvm() {
|
||||
if [ $# -lt 1 ]; then
|
||||
nvm help
|
||||
@@ -405,31 +531,32 @@ nvm() {
|
||||
echo "Node Version Manager"
|
||||
echo
|
||||
echo "Usage:"
|
||||
echo " nvm help Show this message"
|
||||
echo " nvm --version Print out the latest released version of nvm"
|
||||
echo " nvm install [-s] <version> Download and install a <version>, [-s] from source. Uses .nvmrc if available"
|
||||
echo " nvm uninstall <version> Uninstall a version"
|
||||
echo " nvm use <version> Modify PATH to use <version>. Uses .nvmrc if available"
|
||||
echo " nvm run <version> [<args>] Run <version> with <args> as arguments. Uses .nvmrc if available for <version>"
|
||||
echo " nvm current Display currently activated version"
|
||||
echo " nvm ls List installed versions"
|
||||
echo " nvm ls <version> List versions matching a given description"
|
||||
echo " nvm ls-remote List remote versions available for install"
|
||||
echo " nvm deactivate Undo effects of NVM on current shell"
|
||||
echo " nvm alias [<pattern>] Show all aliases beginning with <pattern>"
|
||||
echo " nvm alias <name> <version> Set an alias named <name> pointing to <version>"
|
||||
echo " nvm unalias <name> Deletes the alias named <name>"
|
||||
echo " nvm copy-packages <version> Install global NPM packages contained in <version> to current version"
|
||||
echo " nvm unload Unload NVM from shell"
|
||||
echo " nvm help Show this message"
|
||||
echo " nvm --version Print out the latest released version of nvm"
|
||||
echo " nvm install [-s] <version> Download and install a <version>, [-s] from source. Uses .nvmrc if available"
|
||||
echo " nvm uninstall <version> Uninstall a version"
|
||||
echo " nvm use <version> Modify PATH to use <version>. Uses .nvmrc if available"
|
||||
echo " nvm run <version> [<args>] Run <version> with <args> as arguments. Uses .nvmrc if available for <version>"
|
||||
echo " nvm current Display currently activated version"
|
||||
echo " nvm ls List installed versions"
|
||||
echo " nvm ls <version> List versions matching a given description"
|
||||
echo " nvm ls-remote List remote versions available for install"
|
||||
echo " nvm deactivate Undo effects of \`nvm\` on current shell"
|
||||
echo " nvm alias [<pattern>] Show all aliases beginning with <pattern>"
|
||||
echo " nvm alias <name> <version> Set an alias named <name> pointing to <version>"
|
||||
echo " nvm unalias <name> Deletes the alias named <name>"
|
||||
echo " nvm reinstall-packages <version> Reinstall global \`npm\` packages contained in <version> to current version"
|
||||
echo " nvm unload Unload \`nvm\` from shell"
|
||||
echo
|
||||
echo "Example:"
|
||||
echo " nvm install v0.10.24 Install a specific version number"
|
||||
echo " nvm use 0.10 Use the latest available 0.10.x release"
|
||||
echo " nvm run 0.10.24 myApp.js Run myApp.js using node v0.10.24"
|
||||
echo " nvm alias default 0.10.24 Set default node version on a shell"
|
||||
echo " nvm install v0.10.32 Install a specific version number"
|
||||
echo " nvm use 0.10 Use the latest available 0.10.x release"
|
||||
echo " nvm run 0.10.32 app.js Run app.js using node v0.10.32"
|
||||
echo " nvm exec 0.10.32 node app.js Run \`node app.js\` with the PATH pointing to node v0.10.32"
|
||||
echo " nvm alias default 0.10.32 Set default node version on a shell"
|
||||
echo
|
||||
echo "Note:"
|
||||
echo " to remove, delete, or uninstall nvm - just remove ~/.nvm, ~/.npm, and ~/.bower folders"
|
||||
echo " to remove, delete, or uninstall nvm - just remove ~/.nvm, ~/.npm, and ~/.bower folders"
|
||||
echo
|
||||
;;
|
||||
|
||||
@@ -471,7 +598,7 @@ nvm() {
|
||||
nobinary=1
|
||||
fi
|
||||
|
||||
provided_version=$1
|
||||
provided_version="$1"
|
||||
|
||||
if [ -z "$provided_version" ]; then
|
||||
if [ $version_not_provided -ne 1 ]; then
|
||||
@@ -484,32 +611,35 @@ nvm() {
|
||||
|
||||
VERSION="$(nvm_remote_version "$provided_version")"
|
||||
ADDITIONAL_PARAMETERS=''
|
||||
local PROVIDED_COPY_PACKAGES_FROM
|
||||
local COPY_PACKAGES_FROM
|
||||
local PROVIDED_REINSTALL_PACKAGES_FROM
|
||||
local REINSTALL_PACKAGES_FROM
|
||||
|
||||
while [ $# -ne 0 ]
|
||||
do
|
||||
if [ "_$(echo "$1" | cut -c 1-21)" = "_--copy-packages-from=" ]; then
|
||||
PROVIDED_COPY_PACKAGES_FROM="$(echo "$1" | cut -c 22-)"
|
||||
COPY_PACKAGES_FROM="$(nvm_version "$PROVIDED_COPY_PACKAGES_FROM")"
|
||||
if [ "_$(echo "$1" | cut -c 1-26)" = "_--reinstall-packages-from=" ]; then
|
||||
PROVIDED_REINSTALL_PACKAGES_FROM="$(echo "$1" | cut -c 27-)"
|
||||
REINSTALL_PACKAGES_FROM="$(nvm_version "$PROVIDED_REINSTALL_PACKAGES_FROM")"
|
||||
elif [ "_$(echo "$1" | cut -c 1-21)" = "_--copy-packages-from=" ]; then
|
||||
PROVIDED_REINSTALL_PACKAGES_FROM="$(echo "$1" | cut -c 22-)"
|
||||
REINSTALL_PACKAGES_FROM="$(nvm_version "$PROVIDED_REINSTALL_PACKAGES_FROM")"
|
||||
else
|
||||
ADDITIONAL_PARAMETERS="$ADDITIONAL_PARAMETERS $1"
|
||||
fi
|
||||
shift
|
||||
done
|
||||
|
||||
if [ "_$(nvm_ensure_version_prefix "$PROVIDED_COPY_PACKAGES_FROM")" = "_$VERSION" ]; then
|
||||
echo "You can't copy global packages from the same version of node you're installing." >&2
|
||||
if [ "_$(nvm_ensure_version_prefix "$PROVIDED_REINSTALL_PACKAGES_FROM")" = "_$VERSION" ]; then
|
||||
echo "You can't reinstall global packages from the same version of node you're installing." >&2
|
||||
return 4
|
||||
elif [ ! -z "$PROVIDED_COPY_PACKAGES_FROM" ] && [ "_$COPY_PACKAGES_FROM" = "_N/A" ]; then
|
||||
echo "If --copy-packages-from is provided, it must point to an installed version of node." >&2
|
||||
elif [ ! -z "$PROVIDED_REINSTALL_PACKAGES_FROM" ] && [ "_$REINSTALL_PACKAGES_FROM" = "_N/A" ]; then
|
||||
echo "If --reinstall-packages-from is provided, it must point to an installed version of node." >&2
|
||||
return 5
|
||||
fi
|
||||
|
||||
if [ -d "$(nvm_version_path "$VERSION")" ]; then
|
||||
echo "$VERSION is already installed." >&2
|
||||
if nvm use "$VERSION" && [ ! -z "$COPY_PACKAGES_FROM" ] && [ "_$COPY_PACKAGES_FROM" != "_N/A" ]; then
|
||||
nvm copy-packages "$COPY_PACKAGES_FROM"
|
||||
if nvm use "$VERSION" && [ ! -z "$REINSTALL_PACKAGES_FROM" ] && [ "_$REINSTALL_PACKAGES_FROM" != "_N/A" ]; then
|
||||
nvm reinstall-packages "$REINSTALL_PACKAGES_FROM"
|
||||
fi
|
||||
return $?
|
||||
fi
|
||||
@@ -526,7 +656,7 @@ nvm() {
|
||||
if nvm_binary_available "$VERSION"; then
|
||||
t="$VERSION-$os-$arch"
|
||||
url="$NVM_NODEJS_ORG_MIRROR/$VERSION/node-${t}.tar.gz"
|
||||
sum=`nvm_download -s $NVM_NODEJS_ORG_MIRROR/$VERSION/SHASUMS.txt -o - | \grep node-${t}.tar.gz | \awk '{print $1}'`
|
||||
sum=`nvm_download -L -s $NVM_NODEJS_ORG_MIRROR/$VERSION/SHASUMS.txt -o - | \grep node-${t}.tar.gz | \awk '{print $1}'`
|
||||
local tmpdir
|
||||
tmpdir="$NVM_DIR/bin/node-${t}"
|
||||
local tmptarball
|
||||
@@ -540,8 +670,8 @@ nvm() {
|
||||
mv "$tmpdir" "$(nvm_version_path "$VERSION")"
|
||||
)
|
||||
then
|
||||
if nvm use "$VERSION" && [ ! -z "$COPY_PACKAGES_FROM" ] && [ "_$COPY_PACKAGES_FROM" != "_N/A" ]; then
|
||||
nvm copy-packages "$COPY_PACKAGES_FROM"
|
||||
if nvm use "$VERSION" && [ ! -z "$REINSTALL_PACKAGES_FROM" ] && [ "_$REINSTALL_PACKAGES_FROM" != "_N/A" ]; then
|
||||
nvm reinstall-packages "$REINSTALL_PACKAGES_FROM"
|
||||
fi
|
||||
return $?
|
||||
else
|
||||
@@ -567,10 +697,10 @@ nvm() {
|
||||
tmpdir="$NVM_DIR/src"
|
||||
local tmptarball
|
||||
tmptarball="$tmpdir/node-$VERSION.tar.gz"
|
||||
if [ "`nvm_download -s -I "$NVM_NODEJS_ORG_MIRROR/$VERSION/node-$VERSION.tar.gz" -o - 2>&1 | \grep '200 OK'`" != '' ]; then
|
||||
if [ "`nvm_download -L -s -I "$NVM_NODEJS_ORG_MIRROR/$VERSION/node-$VERSION.tar.gz" -o - 2>&1 | \grep '200 OK'`" != '' ]; then
|
||||
tarball="$NVM_NODEJS_ORG_MIRROR/$VERSION/node-$VERSION.tar.gz"
|
||||
sum=`nvm_download -s $NVM_NODEJS_ORG_MIRROR/$VERSION/SHASUMS.txt -o - | \grep node-$VERSION.tar.gz | \awk '{print $1}'`
|
||||
elif [ "`nvm_download -s -I "$NVM_NODEJS_ORG_MIRROR/node-$VERSION.tar.gz" -o - | \grep '200 OK'`" != '' ]; then
|
||||
sum=`nvm_download -L -s $NVM_NODEJS_ORG_MIRROR/$VERSION/SHASUMS.txt -o - | \grep node-$VERSION.tar.gz | \awk '{print $1}'`
|
||||
elif [ "`nvm_download -L -s -I "$NVM_NODEJS_ORG_MIRROR/node-$VERSION.tar.gz" -o - | \grep '200 OK'`" != '' ]; then
|
||||
tarball="$NVM_NODEJS_ORG_MIRROR/node-$VERSION.tar.gz"
|
||||
fi
|
||||
if (
|
||||
@@ -586,8 +716,8 @@ nvm() {
|
||||
$make $MAKE_CXX install
|
||||
)
|
||||
then
|
||||
if nvm use "$VERSION" && [ ! -z "$COPY_PACKAGES_FROM" ] && [ "_$COPY_PACKAGES_FROM" != "_N/A" ]; then
|
||||
nvm copy-packages "$COPY_PACKAGES_FROM"
|
||||
if nvm use "$VERSION" && [ ! -z "$REINSTALL_PACKAGES_FROM" ] && [ "_$REINSTALL_PACKAGES_FROM" != "_N/A" ]; then
|
||||
nvm reinstall-packages "$REINSTALL_PACKAGES_FROM"
|
||||
fi
|
||||
if ! nvm_has "npm" ; then
|
||||
echo "Installing npm..."
|
||||
@@ -597,10 +727,10 @@ nvm() {
|
||||
if nvm_version_greater 0.2.3 "$VERSION"; then
|
||||
echo "npm requires node v0.2.3 or higher" >&2
|
||||
else
|
||||
nvm_download https://npmjs.org/install.sh -o - | clean=yes npm_install=0.2.19 sh
|
||||
nvm_download -L https://npmjs.org/install.sh -o - | clean=yes npm_install=0.2.19 sh
|
||||
fi
|
||||
else
|
||||
nvm_download https://npmjs.org/install.sh -o - | clean=yes sh
|
||||
nvm_download -L https://npmjs.org/install.sh -o - | clean=yes sh
|
||||
fi
|
||||
fi
|
||||
else
|
||||
@@ -695,6 +825,9 @@ nvm() {
|
||||
echo "System version of node not found." >&2
|
||||
return 127
|
||||
fi
|
||||
elif [ "_$VERSION" = "_∞" ]; then
|
||||
echo "The alias \"$2\" leads to an infinite loop. Aborting." >&2
|
||||
return 8
|
||||
fi
|
||||
|
||||
local NVM_VERSION_DIR
|
||||
@@ -707,24 +840,26 @@ nvm() {
|
||||
PATH=`nvm_strip_path "$PATH" "/bin"`
|
||||
# Prepend current version
|
||||
PATH=`nvm_prepend_path "$PATH" "$NVM_VERSION_DIR/bin"`
|
||||
if [ -z "$MANPATH" ]; then
|
||||
MANPATH=$(manpath)
|
||||
if nvm_has manpath; then
|
||||
if [ -z "$MANPATH" ]; then
|
||||
MANPATH=$(manpath)
|
||||
fi
|
||||
# Strip other version from MANPATH
|
||||
MANPATH=`nvm_strip_path "$MANPATH" "/share/man"`
|
||||
# Prepend current version
|
||||
MANPATH=`nvm_prepend_path "$MANPATH" "$NVM_VERSION_DIR/share/man"`
|
||||
export MANPATH
|
||||
fi
|
||||
# Strip other version from MANPATH
|
||||
MANPATH=`nvm_strip_path "$MANPATH" "/share/man"`
|
||||
# Prepend current version
|
||||
MANPATH=`nvm_prepend_path "$MANPATH" "$NVM_VERSION_DIR/share/man"`
|
||||
# Strip other version from NODE_PATH
|
||||
NODE_PATH=`nvm_strip_path "$NODE_PATH" "/lib/node_modules"`
|
||||
# Prepend current version
|
||||
NODE_PATH=`nvm_prepend_path "$NODE_PATH" "$NVM_VERSION_DIR/lib/node_modules"`
|
||||
export PATH
|
||||
hash -r
|
||||
export MANPATH
|
||||
export NODE_PATH
|
||||
export NVM_PATH="$NVM_VERSION_DIR/lib/node"
|
||||
export NVM_BIN="$NVM_VERSION_DIR/bin"
|
||||
if [ "$NVM_SYMLINK_CURRENT" = true ] || [ -z "$NVM_SYMLINK_CURRENT" ]; then
|
||||
if [ "$NVM_SYMLINK_CURRENT" = true ]; then
|
||||
rm -f "$NVM_DIR/current" && ln -s "$NVM_VERSION_DIR" "$NVM_DIR/current"
|
||||
fi
|
||||
echo "Now using node $VERSION"
|
||||
@@ -751,7 +886,7 @@ nvm() {
|
||||
provided_version=$1
|
||||
if [ -n "$provided_version" ]; then
|
||||
VERSION=`nvm_version $provided_version`
|
||||
if [ $VERSION = "N/A" ]; then
|
||||
if [ "_$VERSION" = "_N/A" ]; then
|
||||
provided_version=''
|
||||
if [ $has_checked_nvmrc -ne 1 ]; then
|
||||
nvm_rc_version && has_checked_nvmrc=1
|
||||
@@ -762,16 +897,15 @@ nvm() {
|
||||
fi
|
||||
fi
|
||||
|
||||
local NVM_VERSION_DIR
|
||||
NVM_VERSION_DIR=$(nvm_version_path "$VERSION")
|
||||
if [ ! -d "$NVM_VERSION_DIR" ]; then
|
||||
echo "$VERSION version is not installed yet" >&2
|
||||
return 1
|
||||
fi
|
||||
RUN_NODE_PATH=`nvm_strip_path "$NODE_PATH" "/lib/node_modules"`
|
||||
RUN_NODE_PATH=`nvm_prepend_path "$NODE_PATH" "$NVM_VERSION_DIR/lib/node_modules"`
|
||||
echo "Running node $VERSION"
|
||||
NODE_PATH=$RUN_NODE_PATH $NVM_VERSION_DIR/bin/node "$@"
|
||||
local ARGS
|
||||
ARGS="$@"
|
||||
local OUTPUT
|
||||
OUTPUT="$(nvm use "$VERSION" >/dev/null && node "$ARGS")"
|
||||
local EXIT_CODE
|
||||
EXIT_CODE="$?"
|
||||
echo "$OUTPUT"
|
||||
return $EXIT_CODE
|
||||
;;
|
||||
"exec" )
|
||||
shift
|
||||
@@ -823,14 +957,27 @@ nvm() {
|
||||
mkdir -p "$NVM_DIR/alias"
|
||||
if [ $# -le 2 ]; then
|
||||
local DEST
|
||||
for ALIAS in "$NVM_DIR"/alias/"$2"*; do
|
||||
if [ -e "$ALIAS" ]; then
|
||||
DEST="$(cat "$ALIAS")"
|
||||
for ALIAS_PATH in "$NVM_DIR"/alias/"$2"*; do
|
||||
ALIAS="$(basename "$ALIAS_PATH")"
|
||||
DEST="$(nvm_alias "$ALIAS" 2> /dev/null)"
|
||||
if [ -n "$DEST" ]; then
|
||||
VERSION="$(nvm_version "$DEST")"
|
||||
if [ "_$DEST" = "_$VERSION" ]; then
|
||||
echo "$(basename "$ALIAS") -> $DEST"
|
||||
echo "$ALIAS -> $DEST"
|
||||
else
|
||||
echo "$(basename "$ALIAS") -> $DEST (-> $VERSION)"
|
||||
echo "$ALIAS -> $DEST (-> $VERSION)"
|
||||
fi
|
||||
fi
|
||||
done
|
||||
|
||||
for ALIAS in "stable" "unstable"; do
|
||||
if [ ! -f "$NVM_DIR/alias/$ALIAS" ]; then
|
||||
if [ $# -lt 2 ] || [ "~$ALIAS" = "~$2" ]; then
|
||||
DEST="$(nvm_print_implicit_alias local "$ALIAS")"
|
||||
if [ "_$DEST" != "_" ]; then
|
||||
VERSION="$(nvm_version "$DEST")"
|
||||
echo "$ALIAS -> $DEST (-> $VERSION) (default)"
|
||||
fi
|
||||
fi
|
||||
fi
|
||||
done
|
||||
@@ -859,7 +1006,7 @@ nvm() {
|
||||
rm -f $NVM_DIR/alias/$2
|
||||
echo "Deleted alias $2"
|
||||
;;
|
||||
"copy-packages" )
|
||||
"reinstall-packages" | "copy-packages" )
|
||||
if [ $# -ne 2 ]; then
|
||||
nvm help
|
||||
return 127
|
||||
@@ -869,7 +1016,7 @@ nvm() {
|
||||
PROVIDED_VERSION="$2"
|
||||
|
||||
if [ "$PROVIDED_VERSION" = "$(nvm_ls_current)" ] || [ "$(nvm_version $PROVIDED_VERSION)" = "$(nvm_ls_current)" ]; then
|
||||
echo 'Can not copy packages from the current version of node.' >&2
|
||||
echo 'Can not reinstall packages from the current version of node.' >&2
|
||||
return 2
|
||||
fi
|
||||
|
||||
@@ -897,7 +1044,7 @@ nvm() {
|
||||
nvm_version $2
|
||||
;;
|
||||
"--version" )
|
||||
echo "0.17.2"
|
||||
echo "0.19.0"
|
||||
;;
|
||||
"unload" )
|
||||
unset -f nvm nvm_print_versions nvm_checksum nvm_ls_remote nvm_ls nvm_remote_version nvm_version nvm_rc_version nvm_version_greater nvm_version_greater_than_or_equal_to > /dev/null 2>&1
|
||||
|
17
package.json
17
package.json
@@ -1,15 +1,17 @@
|
||||
{
|
||||
"name": "nvm",
|
||||
"version": "0.17.2",
|
||||
"version": "0.19.0",
|
||||
"description": "Node Version Manager - Simple bash script to manage multiple active node.js versions",
|
||||
"directories": {
|
||||
"test": "test"
|
||||
},
|
||||
"scripts": {
|
||||
"test": "urchin test",
|
||||
"test/fast": "urchin -f test/fast",
|
||||
"test/slow": "urchin -f test/slow",
|
||||
"test/installation": "urchin -f test/installation"
|
||||
"test": "shell=$(basename -- $(ps -o comm= $(ps -o ppid= -p $PPID)) | sed 's/^-//'); make test-$shell",
|
||||
"test/fast": "shell=$(basename -- $(ps -o comm= $(ps -o ppid= -p $PPID)) | sed 's/^-//'); make TEST_SUITE=fast test-$shell",
|
||||
"test/slow": "shell=$(basename -- $(ps -o comm= $(ps -o ppid= -p $PPID)) | sed 's/^-//'); make TEST_SUITE=slow test-$shell",
|
||||
"test/install_script": "shell=$(basename -- $(ps -o comm= $(ps -o ppid= -p $PPID)) | sed 's/^-//'); make TEST_SUITE=install_script test-$shell",
|
||||
"test/installation": "shell=$(basename -- $(ps -o comm= $(ps -o ppid= -p $PPID)) | sed 's/^-//'); make TEST_SUITE=installation test-$shell",
|
||||
"test/sourcing": "shell=$(basename -- $(ps -o comm= $(ps -o ppid= -p $PPID)) | sed 's/^-//'); make TEST_SUITE=sourcing test-$shell"
|
||||
},
|
||||
"repository": {
|
||||
"type": "git",
|
||||
@@ -28,7 +30,8 @@
|
||||
},
|
||||
"homepage": "https://github.com/creationix/nvm",
|
||||
"devDependencies": {
|
||||
"urchin": "~0.0.2"
|
||||
"replace": "~0.3.0",
|
||||
"semver": "~4.1.0",
|
||||
"urchin": "~0.0.4"
|
||||
}
|
||||
}
|
||||
|
||||
|
@@ -1,4 +1,4 @@
|
||||
#!/bin/sh
|
||||
|
||||
. ../../../nvm.sh
|
||||
[ $(nvm alias test1 | wc -l) = '2' ]
|
||||
[ $(nvm alias test-stable-1 | wc -l) = '2' ]
|
||||
|
@@ -0,0 +1,18 @@
|
||||
#!/bin/sh
|
||||
|
||||
. ../../../nvm.sh
|
||||
|
||||
die () { echo $@ ; exit 1; }
|
||||
|
||||
NVM_ALIAS_OUTPUT=$(nvm alias)
|
||||
|
||||
EXPECTED_STABLE="$(nvm_print_implicit_alias local stable)"
|
||||
STABLE_VERSION="$(nvm_version "$EXPECTED_STABLE")"
|
||||
echo "$NVM_ALIAS_OUTPUT" | \grep -e "^stable -> $EXPECTED_STABLE (-> $STABLE_VERSION) (default)$" \
|
||||
|| die "nvm alias did not contain the default local stable node version"
|
||||
|
||||
EXPECTED_UNSTABLE="$(nvm_print_implicit_alias local unstable)"
|
||||
UNSTABLE_VERSION="$(nvm_version "$EXPECTED_UNSTABLE")"
|
||||
echo "$NVM_ALIAS_OUTPUT" | \grep -e "^unstable -> $EXPECTED_UNSTABLE (-> $UNSTABLE_VERSION) (default)$" \
|
||||
|| die "nvm alias did not contain the default local unstable node version"
|
||||
|
@@ -0,0 +1,37 @@
|
||||
#!/bin/sh
|
||||
|
||||
. ../../../nvm.sh
|
||||
|
||||
die () { echo $@ ; cleanup ; exit 1; }
|
||||
cleanup () {
|
||||
rm -rf ../../../alias/stable
|
||||
rm -rf ../../../alias/unstable
|
||||
rm -rf ../../../v0.8.1
|
||||
rm -rf ../../../v0.9.1
|
||||
}
|
||||
|
||||
mkdir ../../../v0.8.1
|
||||
mkdir ../../../v0.9.1
|
||||
|
||||
EXPECTED_STABLE="$(nvm_print_implicit_alias local stable)"
|
||||
STABLE_VERSION="$(nvm_version "$EXPECTED_STABLE")"
|
||||
|
||||
EXPECTED_UNSTABLE="$(nvm_print_implicit_alias local unstable)"
|
||||
UNSTABLE_VERSION="$(nvm_version "$EXPECTED_UNSTABLE")"
|
||||
|
||||
[ "_$STABLE_VERSION" != "_$UNSTABLE_VERSION" ] \
|
||||
|| die "stable and unstable versions are the same!"
|
||||
|
||||
nvm alias stable "$EXPECTED_UNSTABLE"
|
||||
nvm alias unstable "$EXPECTED_STABLE"
|
||||
|
||||
NVM_ALIAS_OUTPUT=$(nvm alias)
|
||||
|
||||
echo "$NVM_ALIAS_OUTPUT" | \grep -e "^stable -> $EXPECTED_UNSTABLE (-> $UNSTABLE_VERSION)$" \
|
||||
|| die "nvm alias did not contain the overridden 'stable' alias"
|
||||
|
||||
echo "$NVM_ALIAS_OUTPUT" | \grep -e "^unstable -> $EXPECTED_STABLE (-> $STABLE_VERSION)$" \
|
||||
|| die "nvm alias did not contain the overridden 'unstable' alias"
|
||||
|
||||
cleanup
|
||||
|
@@ -5,24 +5,44 @@
|
||||
die () { echo $@ ; exit 1; }
|
||||
|
||||
NVM_ALIAS_OUTPUT=$(nvm alias)
|
||||
echo "$NVM_ALIAS_OUTPUT" | \grep -e '^test1 -> 0.0.1 (-> v0.0.1)$' \
|
||||
|| die "did not find test1 alias"
|
||||
echo "$NVM_ALIAS_OUTPUT" | \grep -e '^test2 -> 0.0.2 (-> v0.0.2)$' \
|
||||
|| die "did not find test2 alias"
|
||||
echo "$NVM_ALIAS_OUTPUT" | \grep -e '^test3 -> 0.0.3 (-> v0.0.3)$' \
|
||||
|| die "did not find test3 alias"
|
||||
echo "$NVM_ALIAS_OUTPUT" | \grep -e '^test4 -> 0.0.4 (-> v0.0.4)$' \
|
||||
|| die "did not find test4 alias"
|
||||
echo "$NVM_ALIAS_OUTPUT" | \grep -e '^test5 -> 0.0.5 (-> v0.0.5)$' \
|
||||
|| die "did not find test5 alias"
|
||||
echo "$NVM_ALIAS_OUTPUT" | \grep -e '^test6 -> 0.0.6 (-> v0.0.6)$' \
|
||||
|| die "did not find test6 alias"
|
||||
echo "$NVM_ALIAS_OUTPUT" | \grep -e '^test7 -> 0.0.7 (-> v0.0.7)$' \
|
||||
|| die "did not find test7 alias"
|
||||
echo "$NVM_ALIAS_OUTPUT" | \grep -e '^test8 -> 0.0.8 (-> v0.0.8)$' \
|
||||
|| die "did not find test8 alias"
|
||||
echo "$NVM_ALIAS_OUTPUT" | \grep -e '^test9 -> 0.0.9 (-> v0.0.9)$' \
|
||||
|| die "did not find test9 alias"
|
||||
echo "$NVM_ALIAS_OUTPUT" | \grep -e '^test10 -> 0.0.10 (-> v0.0.10)$' \
|
||||
|| die "did not find test10 alias"
|
||||
echo "$NVM_ALIAS_OUTPUT" | \grep -e '^test-stable-1 -> 0.0.1 (-> v0.0.1)$' \
|
||||
|| die "did not find test-stable-1 alias"
|
||||
echo "$NVM_ALIAS_OUTPUT" | \grep -e '^test-stable-2 -> 0.0.2 (-> v0.0.2)$' \
|
||||
|| die "did not find test-stable-2 alias"
|
||||
echo "$NVM_ALIAS_OUTPUT" | \grep -e '^test-stable-3 -> 0.0.3 (-> v0.0.3)$' \
|
||||
|| die "did not find test-stable-3 alias"
|
||||
echo "$NVM_ALIAS_OUTPUT" | \grep -e '^test-stable-4 -> 0.0.4 (-> v0.0.4)$' \
|
||||
|| die "did not find test-stable-4 alias"
|
||||
echo "$NVM_ALIAS_OUTPUT" | \grep -e '^test-stable-5 -> 0.0.5 (-> v0.0.5)$' \
|
||||
|| die "did not find test-stable-5 alias"
|
||||
echo "$NVM_ALIAS_OUTPUT" | \grep -e '^test-stable-6 -> 0.0.6 (-> v0.0.6)$' \
|
||||
|| die "did not find test-stable-6 alias"
|
||||
echo "$NVM_ALIAS_OUTPUT" | \grep -e '^test-stable-7 -> 0.0.7 (-> v0.0.7)$' \
|
||||
|| die "did not find test-stable-7 alias"
|
||||
echo "$NVM_ALIAS_OUTPUT" | \grep -e '^test-stable-8 -> 0.0.8 (-> v0.0.8)$' \
|
||||
|| die "did not find test-stable-8 alias"
|
||||
echo "$NVM_ALIAS_OUTPUT" | \grep -e '^test-stable-9 -> 0.0.9 (-> v0.0.9)$' \
|
||||
|| die "did not find test-stable-9 alias"
|
||||
echo "$NVM_ALIAS_OUTPUT" | \grep -e '^test-stable-10 -> 0.0.10 (-> v0.0.10)$' \
|
||||
|| die "did not find test-stable-10 alias"
|
||||
echo "$NVM_ALIAS_OUTPUT" | \grep -e '^test-unstable-1 -> 0.1.1 (-> v0.1.1)$' \
|
||||
|| die "did not find test-unstable-1 alias"
|
||||
echo "$NVM_ALIAS_OUTPUT" | \grep -e '^test-unstable-2 -> 0.1.2 (-> v0.1.2)$' \
|
||||
|| die "did not find test-unstable-2 alias"
|
||||
echo "$NVM_ALIAS_OUTPUT" | \grep -e '^test-unstable-3 -> 0.1.3 (-> v0.1.3)$' \
|
||||
|| die "did not find test-unstable-3 alias"
|
||||
echo "$NVM_ALIAS_OUTPUT" | \grep -e '^test-unstable-4 -> 0.1.4 (-> v0.1.4)$' \
|
||||
|| die "did not find test-unstable-4 alias"
|
||||
echo "$NVM_ALIAS_OUTPUT" | \grep -e '^test-unstable-5 -> 0.1.5 (-> v0.1.5)$' \
|
||||
|| die "did not find test-unstable-5 alias"
|
||||
echo "$NVM_ALIAS_OUTPUT" | \grep -e '^test-unstable-6 -> 0.1.6 (-> v0.1.6)$' \
|
||||
|| die "did not find test-unstable-6 alias"
|
||||
echo "$NVM_ALIAS_OUTPUT" | \grep -e '^test-unstable-7 -> 0.1.7 (-> v0.1.7)$' \
|
||||
|| die "did not find test-unstable-7 alias"
|
||||
echo "$NVM_ALIAS_OUTPUT" | \grep -e '^test-unstable-8 -> 0.1.8 (-> v0.1.8)$' \
|
||||
|| die "did not find test-unstable-8 alias"
|
||||
echo "$NVM_ALIAS_OUTPUT" | \grep -e '^test-unstable-9 -> 0.1.9 (-> v0.1.9)$' \
|
||||
|| die "did not find test-unstable-9 alias"
|
||||
echo "$NVM_ALIAS_OUTPUT" | \grep -e '^test-unstable-10 -> 0.1.10 (-> v0.1.10)$' \
|
||||
|| die "did not find test-unstable-10 alias"
|
||||
|
||||
|
36
test/fast/Aliases/circular/nvm_resolve_alias
Executable file
36
test/fast/Aliases/circular/nvm_resolve_alias
Executable file
@@ -0,0 +1,36 @@
|
||||
#!/bin/sh
|
||||
|
||||
die () { echo $@ ; exit 1; }
|
||||
|
||||
. ../../../../nvm.sh
|
||||
|
||||
ALIAS="$(nvm_resolve_alias loopback)"
|
||||
[ "_$ALIAS" = "_∞" ] || die "nvm_resolve_alias loopback was not ∞; got $ALIAS"
|
||||
OUTPUT="$(nvm alias loopback)"
|
||||
EXPECTED_OUTPUT="loopback -> loopback (-> ∞)"
|
||||
[ "_$OUTPUT" = "_$EXPECTED_OUTPUT" ] || die "nvm alias loopback was not $EXPECTED_OUTPUT; got $OUTPUT"
|
||||
|
||||
ALIAS="$(nvm_resolve_alias one)"
|
||||
[ "_$ALIAS" = "_∞" ] || die "nvm_resolve_alias one was not ∞; got $ALIAS"
|
||||
OUTPUT="$(nvm alias one)"
|
||||
EXPECTED_OUTPUT="one -> two (-> ∞)"
|
||||
[ "_$OUTPUT" = "_$EXPECTED_OUTPUT" ] || die "nvm alias one was not $EXPECTED_OUTPUT; got $OUTPUT"
|
||||
|
||||
ALIAS="$(nvm_resolve_alias two)"
|
||||
[ "_$ALIAS" = "_∞" ] || die "nvm_resolve_alias two was not ∞; got $ALIAS"
|
||||
OUTPUT="$(nvm alias two)"
|
||||
EXPECTED_OUTPUT="two -> three (-> ∞)"
|
||||
[ "_$OUTPUT" = "_$EXPECTED_OUTPUT" ] || die "nvm alias two was not $EXPECTED_OUTPUT; got $OUTPUT"
|
||||
|
||||
ALIAS="$(nvm_resolve_alias three)"
|
||||
[ "_$ALIAS" = "_∞" ] || die "nvm_resolve_alias three was not ∞; got $ALIAS"
|
||||
OUTPUT="$(nvm alias three)"
|
||||
EXPECTED_OUTPUT="three -> one (-> ∞)"
|
||||
[ "_$OUTPUT" = "_$EXPECTED_OUTPUT" ] || die "nvm alias three was not $EXPECTED_OUTPUT; got $OUTPUT"
|
||||
|
||||
ALIAS="$(nvm_resolve_alias four)"
|
||||
[ "_$ALIAS" = "_∞" ] || die "nvm_resolve_alias four was not ∞; got $ALIAS"
|
||||
OUTPUT="$(nvm alias four)"
|
||||
EXPECTED_OUTPUT="four -> two (-> ∞)"
|
||||
[ "_$OUTPUT" = "_$EXPECTED_OUTPUT" ] || die "nvm alias four was not $EXPECTED_OUTPUT; got $OUTPUT"
|
||||
|
10
test/fast/Aliases/circular/setup
Executable file
10
test/fast/Aliases/circular/setup
Executable file
@@ -0,0 +1,10 @@
|
||||
#!/bin/sh
|
||||
|
||||
echo loopback > ../../../../alias/loopback
|
||||
|
||||
echo two > ../../../../alias/one
|
||||
echo three > ../../../../alias/two
|
||||
echo one > ../../../../alias/three
|
||||
|
||||
echo two > ../../../../alias/four
|
||||
|
10
test/fast/Aliases/circular/teardown
Executable file
10
test/fast/Aliases/circular/teardown
Executable file
@@ -0,0 +1,10 @@
|
||||
#!/bin/sh
|
||||
|
||||
rm -f ../../../../alias/loopback
|
||||
|
||||
rm -f ../../../../alias/one
|
||||
rm -f ../../../../alias/two
|
||||
rm -f ../../../../alias/three
|
||||
|
||||
rm -f ../../../../alias/four
|
||||
|
28
test/fast/Aliases/nvm_resolve_alias
Executable file
28
test/fast/Aliases/nvm_resolve_alias
Executable file
@@ -0,0 +1,28 @@
|
||||
#!/bin/sh
|
||||
|
||||
die () { echo $@ ; exit 1; }
|
||||
|
||||
. ../../../nvm.sh
|
||||
|
||||
EXIT_CODE=$(nvm_resolve_alias ; echo $?)
|
||||
[ $EXIT_CODE = "1" ] || die "nvm_resolve_alias without an argument did not return 1; got $EXIT_CODE"
|
||||
|
||||
for i in $(seq 1 10)
|
||||
do
|
||||
STABLE_ALIAS="$(nvm_resolve_alias test-stable-$i)"
|
||||
[ "_$STABLE_ALIAS" = "_v0.0.$i" ] \
|
||||
|| die "'nvm_resolve_alias test-stable-$i' was not v0.0.$i; got $STABLE_ALIAS"
|
||||
UNSTABLE_ALIAS="$(nvm_resolve_alias test-unstable-$i)"
|
||||
[ "_$UNSTABLE_ALIAS" = "_v0.1.$i" ] \
|
||||
|| die "'nvm_resolve_alias test-unstable-$i' was not v0.1.$i; got $UNSTABLE_ALIAS"
|
||||
done
|
||||
|
||||
EXIT_CODE=$(nvm_resolve_alias nonexistent ; echo $?)
|
||||
[ $EXIT_CODE = "2" ] || die "'nvm_resolve_alias nonexistent' did not return 2; got $EXIT_CODE"
|
||||
|
||||
STABLE="$(nvm_resolve_alias stable)"
|
||||
[ "_$STABLE" = "_v0.0.10" ] || die "'nvm_resolve_alias stable' was not v0.0.10; got $STABLE"
|
||||
|
||||
UNSTABLE="$(nvm_resolve_alias unstable)"
|
||||
[ "_$UNSTABLE" = "_v0.1.10" ] || die "'nvm_resolve_alias unstable' was not v0.1.10; got $UNSTABLE"
|
||||
|
9
test/fast/Aliases/setup
Executable file
9
test/fast/Aliases/setup
Executable file
@@ -0,0 +1,9 @@
|
||||
#!/bin/sh
|
||||
|
||||
for i in $(seq 1 10)
|
||||
do
|
||||
echo 0.0.$i > ../../../alias/test-stable-$i
|
||||
mkdir -p ../../../v0.0.$i
|
||||
echo 0.1.$i > ../../../alias/test-unstable-$i
|
||||
mkdir -p ../../../v0.1.$i
|
||||
done
|
@@ -1,7 +0,0 @@
|
||||
#!/bin/sh
|
||||
|
||||
for i in $(seq 1 10)
|
||||
do
|
||||
echo 0.0.$i > ../../../alias/test$i
|
||||
mkdir -p ../../../v0.0.$i
|
||||
done
|
13
test/fast/Aliases/teardown
Executable file
13
test/fast/Aliases/teardown
Executable file
@@ -0,0 +1,13 @@
|
||||
#!/bin/sh
|
||||
|
||||
for i in $(seq 1 10)
|
||||
do
|
||||
rm -f "../../../alias/test-stable-$i"
|
||||
rm -rf "../../../v0.0.$i"
|
||||
rm -f "../../../alias/test-unstable-$i"
|
||||
rm -rf "../../../v0.1.$i"
|
||||
done
|
||||
|
||||
rm -f "../../../alias/stable"
|
||||
rm -f "../../../alias/unstable"
|
||||
|
@@ -1,8 +0,0 @@
|
||||
#!/bin/sh
|
||||
|
||||
for i in $(seq 1 10)
|
||||
do
|
||||
rm -f "../../../alias/test$i"
|
||||
rm -rf "../../../v0.0.$i"
|
||||
done
|
||||
|
@@ -0,0 +1,29 @@
|
||||
#!/bin/sh
|
||||
|
||||
. ../../../nvm.sh
|
||||
|
||||
die () { echo $@ ; exit 1; }
|
||||
|
||||
mkdir ../../../v0.2.3
|
||||
mkdir ../../../v0.3.3
|
||||
|
||||
EXPECTED_STABLE="$(nvm_print_implicit_alias local stable)"
|
||||
STABLE_VERSION="$(nvm_version "$EXPECTED_STABLE")"
|
||||
|
||||
EXPECTED_UNSTABLE="$(nvm_print_implicit_alias local unstable)"
|
||||
UNSTABLE_VERSION="$(nvm_version "$EXPECTED_UNSTABLE")"
|
||||
|
||||
nvm ls stable | \grep "$STABLE_VERSION" >/dev/null \
|
||||
|| die "expected 'nvm ls stable' to give $STABLE_VERSION, got $(nvm ls stable)"
|
||||
|
||||
nvm ls unstable | \grep "$UNSTABLE_VERSION" >/dev/null \
|
||||
|| die "expected 'nvm ls unstable' to give $UNSTABLE_VERSION, got $(nvm ls unstable)"
|
||||
|
||||
mkdir ../../../v0.1.2
|
||||
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"
|
||||
|
@@ -9,6 +9,9 @@ rmdir ../../../v0.2.3 >/dev/null 2>&1
|
||||
rmdir ../../../v0.3.1 >/dev/null 2>&1
|
||||
rmdir ../../../v0.3.3 >/dev/null 2>&1
|
||||
rmdir ../../../v0.3.9 >/dev/null 2>&1
|
||||
rmdir ../../../v0.20.3 >/dev/null 2>&1
|
||||
rmdir ../../../versions >/dev/null 2>&1
|
||||
unalias nvm_has_system_node >/dev/null 2>&1
|
||||
rm -f ../../../alias/stable >/dev/null 2>&1
|
||||
rm -f ../../../alias/unstable >/dev/null 2>&1
|
||||
|
||||
|
@@ -1,31 +0,0 @@
|
||||
#!/bin/sh
|
||||
|
||||
die () { echo $@ ; cleanup ; exit 1; }
|
||||
cleanup () {
|
||||
rm -rf ../../v0.10.4
|
||||
}
|
||||
|
||||
mkdir ../../v0.10.4
|
||||
|
||||
. ../../nvm.sh
|
||||
|
||||
nvm deactivate >/dev/null 2>&1
|
||||
|
||||
INSTALL_ERROR_MSG="$(nvm install v0.10.5 --copy-packages-from=0.11 2>&1)"
|
||||
EXPECTED_ERROR_MSG="If --copy-packages-from is provided, it must point to an installed version of node."
|
||||
[ "~$INSTALL_ERROR_MSG" = "~$EXPECTED_ERROR_MSG" ] \
|
||||
|| die ""nvm install --copy-packages" should fail when given an uninstalled version: expected '$EXPECTED_ERROR_MSG', got '$INSTALL_ERROR_MSG'"
|
||||
|
||||
INSTALL_EXIT_CODE="$(nvm install v0.10.5 --copy-packages-from=0.11 >/dev/null 2>&1; echo $?)"
|
||||
[ "~$INSTALL_EXIT_CODE" = "~5" ] \
|
||||
|| die ""nvm install --copy-packages" should exit with code 5 when given an uninstalled version, got $INSTALL_EXIT_CODE"
|
||||
|
||||
INSTALL_ERROR_MSG="$(nvm install v0.10.5 --copy-packages-from=0.10.5 2>&1)"
|
||||
EXPECTED_ERROR_MSG="You can't copy global packages from the same version of node you're installing."
|
||||
[ "~$INSTALL_ERROR_MSG" = "~$EXPECTED_ERROR_MSG" ] \
|
||||
|| die ""nvm install --copy-packages" should fail when given the same version: expected '$EXPECTED_ERROR_MSG', got '$INSTALL_ERROR_MSG'"
|
||||
|
||||
INSTALL_EXIT_CODE="$(nvm install v0.10.5 --copy-packages-from=0.10.5 >/dev/null 2>&1; echo $?)"
|
||||
[ "~$INSTALL_EXIT_CODE" = "~4" ] \
|
||||
|| die ""nvm install --copy-packages" should exit with code 4 when given the same version, got $INSTALL_EXIT_CODE"
|
||||
|
@@ -0,0 +1,31 @@
|
||||
#!/bin/sh
|
||||
|
||||
die () { echo $@ ; cleanup ; exit 1; }
|
||||
cleanup () {
|
||||
rm -rf ../../v0.10.4
|
||||
}
|
||||
|
||||
mkdir ../../v0.10.4
|
||||
|
||||
. ../../nvm.sh
|
||||
|
||||
nvm deactivate >/dev/null 2>&1
|
||||
|
||||
INSTALL_ERROR_MSG="$(nvm install v0.10.5 --reinstall-packages-from=0.11 2>&1)"
|
||||
EXPECTED_ERROR_MSG="If --reinstall-packages-from is provided, it must point to an installed version of node."
|
||||
[ "~$INSTALL_ERROR_MSG" = "~$EXPECTED_ERROR_MSG" ] \
|
||||
|| die ""nvm install --reinstall-packages-from" should fail when given an uninstalled version: expected '$EXPECTED_ERROR_MSG', got '$INSTALL_ERROR_MSG'"
|
||||
|
||||
INSTALL_EXIT_CODE="$(nvm install v0.10.5 --reinstall-packages-from=0.11 >/dev/null 2>&1; echo $?)"
|
||||
[ "~$INSTALL_EXIT_CODE" = "~5" ] \
|
||||
|| die ""nvm install --reinstall-packages-from" should exit with code 5 when given an uninstalled version, got $INSTALL_EXIT_CODE"
|
||||
|
||||
INSTALL_ERROR_MSG="$(nvm install v0.10.5 --reinstall-packages-from=0.10.5 2>&1)"
|
||||
EXPECTED_ERROR_MSG="You can't reinstall global packages from the same version of node you're installing."
|
||||
[ "~$INSTALL_ERROR_MSG" = "~$EXPECTED_ERROR_MSG" ] \
|
||||
|| die ""nvm install --reinstall-packages-from" should fail when given the same version: expected '$EXPECTED_ERROR_MSG', got '$INSTALL_ERROR_MSG'"
|
||||
|
||||
INSTALL_EXIT_CODE="$(nvm install v0.10.5 --reinstall-packages-from=0.10.5 >/dev/null 2>&1; echo $?)"
|
||||
[ "~$INSTALL_EXIT_CODE" = "~4" ] \
|
||||
|| die ""nvm install --reinstall-packages-from" should exit with code 4 when given the same version, got $INSTALL_EXIT_CODE"
|
||||
|
22
test/fast/Running "nvm use foo" where "foo" is circular aborts
Executable file
22
test/fast/Running "nvm use foo" where "foo" is circular aborts
Executable file
@@ -0,0 +1,22 @@
|
||||
#!/bin/sh
|
||||
|
||||
die () { echo $@ ; cleanup ; exit 1; }
|
||||
|
||||
cleanup() {
|
||||
rm -rf ../../alias/foo
|
||||
}
|
||||
|
||||
. ../../nvm.sh
|
||||
|
||||
echo 'foo' > ../../alias/foo
|
||||
|
||||
OUTPUT="$(nvm use foo 2>&1)"
|
||||
EXPECTED_OUTPUT='The alias "foo" leads to an infinite loop. Aborting.'
|
||||
[ "_$OUTPUT" = "_$EXPECTED_OUTPUT" ] \
|
||||
|| die "'nvm use foo' did not output '$EXPECTED_OUTPUT'; got '$OUTPUT'"
|
||||
|
||||
EXIT_CODE="$(nvm use foo 2>/dev/null ; echo $?)"
|
||||
[ "_$EXIT_CODE" = "_8" ] || die "Expected exit code 8; got $EXIT_CODE"
|
||||
|
||||
cleanup;
|
||||
|
@@ -1,5 +1,6 @@
|
||||
#!/bin/bash
|
||||
|
||||
export NVM_SYMLINK_CURRENT=true
|
||||
. ../../nvm.sh
|
||||
|
||||
rm -rf ../../v0.10.29
|
||||
|
@@ -45,39 +45,40 @@ function isCurrentSymlinkPresent() {
|
||||
NVM_SYMLINK_CURRENT=false
|
||||
cleanup
|
||||
runNvmUse
|
||||
isCurrentSymlinkPresent && echo "Expected 'current' symlink not to be created when NVM_SYMLINK_CURRENT=false!"
|
||||
isCurrentSymlinkPresent && echo >&2 "Expected 'current' symlink not to be created when NVM_SYMLINK_CURRENT=false!"
|
||||
registerExpectedNoSymlink $?
|
||||
|
||||
NVM_SYMLINK_CURRENT=true
|
||||
cleanup
|
||||
runNvmUse
|
||||
isCurrentSymlinkPresent || echo "Expected 'current' symlink to be created when NVM_SYMLINK_CURRENT=true!"
|
||||
isCurrentSymlinkPresent || echo >&2 "Expected 'current' symlink to be created when NVM_SYMLINK_CURRENT=true!"
|
||||
registerExpectedSymlink $?
|
||||
|
||||
NVM_SYMLINK_CURRENT=garbagevalue
|
||||
cleanup
|
||||
runNvmUse
|
||||
isCurrentSymlinkPresent && echo "Expected 'current' symlink not to be created when NVM_SYMLINK_CURRENT contains a string!"
|
||||
isCurrentSymlinkPresent && echo >&2 "Expected 'current' symlink not to be created when NVM_SYMLINK_CURRENT contains a string!"
|
||||
registerExpectedNoSymlink $?
|
||||
|
||||
NVM_SYMLINK_CURRENT=0
|
||||
cleanup
|
||||
runNvmUse
|
||||
isCurrentSymlinkPresent && echo "Expected 'current' symlink not to be created when NVM_SYMLINK_CURRENT=0!"
|
||||
isCurrentSymlinkPresent && echo >&2 "Expected 'current' symlink not to be created when NVM_SYMLINK_CURRENT=0!"
|
||||
registerExpectedNoSymlink $?
|
||||
|
||||
NVM_SYMLINK_CURRENT=1
|
||||
cleanup
|
||||
runNvmUse
|
||||
isCurrentSymlinkPresent && echo "Expected 'current' symlink not to be created when NVM_SYMLINK_CURRENT=1!"
|
||||
isCurrentSymlinkPresent && echo >&2 "Expected 'current' symlink not to be created when NVM_SYMLINK_CURRENT=1!"
|
||||
registerExpectedNoSymlink $?
|
||||
|
||||
unset NVM_SYMLINK_CURRENT
|
||||
cleanup
|
||||
runNvmUse
|
||||
isCurrentSymlinkPresent || echo "Expected 'current' symlink to be created when NVM_SYMLINK_CURRENT has been unset (default behaviour)!"
|
||||
registerExpectedSymlink $?
|
||||
isCurrentSymlinkPresent && echo >&2 "Expected 'current' symlink not to be created when NVM_SYMLINK_CURRENT has been unset (default behaviour)!"
|
||||
registerExpectedNoSymlink $?
|
||||
|
||||
cleanup
|
||||
|
||||
[ ${TEST_FAILED} -ne 0 ] && echo "${TEST_COUNT} tested, ${TEST_PASSED} passed, ${TEST_FAILED} failed" && exit 1 || true
|
||||
|
||||
|
33
test/fast/Unit tests/nvm_alias
Executable file
33
test/fast/Unit tests/nvm_alias
Executable file
@@ -0,0 +1,33 @@
|
||||
#!/bin/sh
|
||||
|
||||
die () { echo $@ ; cleanup ; exit 1; }
|
||||
|
||||
cleanup () {
|
||||
rm -rf ../../../alias/test
|
||||
}
|
||||
|
||||
. ../../../nvm.sh
|
||||
|
||||
OUTPUT="$(nvm_alias 2>&1)"
|
||||
EXPECTED_OUTPUT='An alias is required.'
|
||||
[ "_$OUTPUT" = "_$EXPECTED_OUTPUT" ] || die "'nvm_alias' produced wrong output; got $OUTPUT"
|
||||
|
||||
EXIT_CODE="$(nvm_alias >/dev/null 2>&1 ; echo $?)"
|
||||
[ "_$EXIT_CODE" = "_1" ] || die "'nvm_alias' exited with $EXIT_CODE, expected 1"
|
||||
|
||||
rm -rf ../../../alias/nonexistent
|
||||
|
||||
OUTPUT="$(nvm_alias nonexistent 2>&1)"
|
||||
EXPECTED_OUTPUT='Alias does not exist.'
|
||||
[ "_$OUTPUT" = "_$EXPECTED_OUTPUT" ] || die "'nvm_alias nonexistent' produced wrong output; got $OUTPUT"
|
||||
|
||||
EXIT_CODE="$(nvm_alias nonexistent >/dev/null 2>&1 ; echo $?)"
|
||||
[ "_$EXIT_CODE" = "_2" ] || die "'nvm_alias nonexistent' exited with $EXIT_CODE, expected 2"
|
||||
|
||||
EXPECTED_OUTPUT="0.10"
|
||||
nvm alias test "$EXPECTED_OUTPUT" || die "'nvm alias test $EXPECTED_OUTPUT' failed"
|
||||
OUTPUT="$(nvm_alias test)"
|
||||
[ "_$OUTPUT" = "_$EXPECTED_OUTPUT" ] || die "'nvm_alias test' produced wrong output; got $OUTPUT"
|
||||
|
||||
cleanup
|
||||
|
@@ -464,5 +464,22 @@ v0.3.8"
|
||||
|
||||
[ "_$OUTPUT" = "_$EXPECTED_OUTPUT" ] || die "nvm_ls_remote 0.3 did not output 0.3.x versions; got $OUTPUT"
|
||||
|
||||
# Sanity checks
|
||||
OUTPUT="$(nvm_print_implicit_alias remote stable)"
|
||||
EXPECTED_OUTPUT="0.10"
|
||||
[ "_$OUTPUT" = "_$EXPECTED_OUTPUT" ] || die "nvm_print_implicit_alias remote stable did not output $EXPECTED_OUTPUT; got $OUTPUT"
|
||||
|
||||
OUTPUT="$(nvm_print_implicit_alias remote unstable)"
|
||||
EXPECTED_OUTPUT="0.11"
|
||||
[ "_$OUTPUT" = "_$EXPECTED_OUTPUT" ] || die "nvm_print_implicit_alias remote unstable did not output $EXPECTED_OUTPUT; got $OUTPUT"
|
||||
|
||||
OUTPUT="$(nvm_ls_remote stable)"
|
||||
EXPECTED_OUTPUT="v0.10.32"
|
||||
[ "_$OUTPUT" = "_$EXPECTED_OUTPUT" ] || die "nvm_ls_remote stable did not output $EXPECTED_OUTPUT; got $OUTPUT"
|
||||
|
||||
OUTPUT="$(nvm_ls_remote unstable)"
|
||||
EXPECTED_OUTPUT="v0.11.14"
|
||||
[ "_$OUTPUT" = "_$EXPECTED_OUTPUT" ] || die "nvm_ls_remote unstable did not output $EXPECTED_OUTPUT; got $OUTPUT"
|
||||
|
||||
cleanup
|
||||
|
||||
|
26
test/fast/Unit tests/nvm_print_implicit_alias errors
Executable file
26
test/fast/Unit tests/nvm_print_implicit_alias errors
Executable file
@@ -0,0 +1,26 @@
|
||||
#!/bin/sh
|
||||
|
||||
die () { echo $@ ; exit 1; }
|
||||
|
||||
. ../../../nvm.sh
|
||||
|
||||
EXPECTED_FIRST_MSG="nvm_print_implicit_alias must be specified with local or remote as the first argument."
|
||||
[ "_$(nvm_print_implicit_alias 2>&1)" = "_$EXPECTED_FIRST_MSG" ] \
|
||||
|| die "nvm_print_implicit_alias did not require local|remote as first argument"
|
||||
[ "_$(nvm_print_implicit_alias foo 2>&1)" = "_$EXPECTED_FIRST_MSG" ] \
|
||||
|| die "nvm_print_implicit_alias did not require local|remote as first argument"
|
||||
|
||||
FIRST_EXIT_CODE="$(nvm_print_implicit_alias > /dev/null 2>&1 ; echo $?)"
|
||||
[ "_$FIRST_EXIT_CODE" = "_1" ] \
|
||||
|| die "nvm_print_implicit_alias without local|remote had wrong exit code: expected 1, got $FIRST_EXIT_CODE"
|
||||
|
||||
EXPECTED_SECOND_MSG="Only implicit aliases 'stable' and 'unstable' are supported."
|
||||
[ "_$(nvm_print_implicit_alias local 2>&1)" = "_$EXPECTED_SECOND_MSG" ] \
|
||||
|| die "nvm_print_implicit_alias did not require stable|unstable as second argument"
|
||||
[ "_$(nvm_print_implicit_alias local foo 2>&1)" = "_$EXPECTED_SECOND_MSG" ] \
|
||||
|| die "nvm_print_implicit_alias did not require stable|unstable as second argument"
|
||||
|
||||
SECOND_EXIT_CODE="$(nvm_print_implicit_alias local > /dev/null 2>&1 ; echo $?)"
|
||||
[ "_$SECOND_EXIT_CODE" = "_2" ] \
|
||||
|| die "nvm_print_implicit_alias without stable|unstable had wrong exit code: expected 2, got $SECOND_EXIT_CODE"
|
||||
|
47
test/fast/Unit tests/nvm_print_implicit_alias success
Executable file
47
test/fast/Unit tests/nvm_print_implicit_alias success
Executable file
@@ -0,0 +1,47 @@
|
||||
#!/bin/sh
|
||||
|
||||
die () { echo $@ ; cleanup ; exit 1; }
|
||||
cleanup() {
|
||||
rm -rf ../../../v0.2.3
|
||||
rm -rf ../../../v0.3.4
|
||||
rm -rf ../../../v0.4.6
|
||||
rm -rf ../../../v0.5.7
|
||||
rm -rf ../../../v0.7.7
|
||||
unset -f nvm_ls_remote
|
||||
}
|
||||
|
||||
. ../../../nvm.sh
|
||||
|
||||
mkdir ../../../v0.2.3
|
||||
mkdir ../../../v0.3.4
|
||||
mkdir ../../../v0.4.6
|
||||
mkdir ../../../v0.5.7
|
||||
mkdir ../../../v0.7.7
|
||||
|
||||
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"
|
||||
|
||||
LATEST_UNSTABLE="$(nvm_print_implicit_alias local unstable)"
|
||||
[ "_$LATEST_UNSTABLE" = "_0.7" ] || die "local unstable is not latest odd minor: expected 0.7, got $LATEST_UNSTABLE"
|
||||
|
||||
nvm_ls_remote() {
|
||||
echo "v0.4.3"
|
||||
echo "v0.5.4"
|
||||
echo "v0.6.6"
|
||||
echo "v0.7.7"
|
||||
echo "v0.9.7"
|
||||
echo "v0.4.3"
|
||||
echo "v0.5.4"
|
||||
echo "v0.6.6"
|
||||
echo "v0.7.7"
|
||||
echo "v0.9.7"
|
||||
}
|
||||
|
||||
LATEST_STABLE="$(nvm_print_implicit_alias remote stable)"
|
||||
[ "_$LATEST_STABLE" = "_0.6" ] || die "remote stable is not latest even minor: expected 0.6, got $LATEST_STABLE"
|
||||
|
||||
LATEST_UNSTABLE="$(nvm_print_implicit_alias remote unstable)"
|
||||
[ "_$LATEST_UNSTABLE" = "_0.9" ] || die "remote unstable is not latest odd minor: expected 0.9, got $LATEST_UNSTABLE"
|
||||
|
||||
cleanup
|
||||
|
19
test/fast/Unit tests/nvm_validate_implicit_alias
Executable file
19
test/fast/Unit tests/nvm_validate_implicit_alias
Executable file
@@ -0,0 +1,19 @@
|
||||
#!/bin/sh
|
||||
|
||||
die () { echo $@ ; exit 1; }
|
||||
|
||||
. ../../../nvm.sh
|
||||
|
||||
EXPECTED_MSG="Only implicit aliases 'stable' and 'unstable' are supported."
|
||||
[ "_$(nvm_validate_implicit_alias 2>&1)" = "_$EXPECTED_MSG" ] \
|
||||
|| die "nvm_validate_implicit_alias did not require stable|unstable"
|
||||
[ "_$(nvm_validate_implicit_alias foo 2>&1)" = "_$EXPECTED_MSG" ] \
|
||||
|| die "nvm_validate_implicit_alias did not require stable|unstable"
|
||||
|
||||
EXIT_CODE="$(nvm_validate_implicit_alias >/dev/null 2>&1 ; echo $?)"
|
||||
[ "_$EXIT_CODE" = "_1" ] \
|
||||
|| die "nvm_validate_implicit_alias without stable|unstable had wrong exit code: expected 1, got $EXIT_CODE"
|
||||
|
||||
nvm_validate_implicit_alias stable || die "nvm_validate_implicit_alias stable did not exit 0"
|
||||
nvm_validate_implicit_alias unstable || die "nvm_validate_implicit_alias unstable did not exit 0"
|
||||
|
67
test/install_script/nvm_detect_profile
Executable file
67
test/install_script/nvm_detect_profile
Executable file
@@ -0,0 +1,67 @@
|
||||
#!/bin/sh
|
||||
|
||||
cleanup () {
|
||||
unset -f setup cleanup die
|
||||
unset _PROFILE
|
||||
rm -f .bashrc .bash_profile .zshrc .profile test_profile > /dev/null 2>&1
|
||||
}
|
||||
die () { echo $@ ; cleanup ; exit 1; }
|
||||
|
||||
NVM_ENV=testing . ../../install.sh
|
||||
|
||||
setup () {
|
||||
touch .bashrc
|
||||
touch .bash_profile
|
||||
touch .zshrc
|
||||
touch .profile
|
||||
touch test_profile
|
||||
}
|
||||
|
||||
#Let's hack $HOME
|
||||
HOME="."
|
||||
|
||||
setup
|
||||
|
||||
|
||||
# $PROFILE points to a valid file, its path must be returned
|
||||
PROFILE="test_profile"
|
||||
_PROFILE=$(nvm_detect_profile)
|
||||
[ "_$_PROFILE" = "_$PROFILE" ] || die "nvm_detect_profile didn't pick \$PROFILE"
|
||||
|
||||
# $PROFILE doesn't point to a valid file, its path must not be returned
|
||||
PROFILE="invalid_profile"
|
||||
_PROFILE=$(nvm_detect_profile)
|
||||
[ "_$_PROFILE" != "_$PROFILE" ] || die "nvm_detect_profile shouldn't pick \$PROFILE when it's not a valid file"
|
||||
|
||||
|
||||
# Below are tests for when $PROFILE is undefined
|
||||
rm test_profile
|
||||
unset PROFILE
|
||||
|
||||
# It should favor .bashrc if file exists
|
||||
_PROFILE=$(nvm_detect_profile)
|
||||
[ "_$_PROFILE" = "_$HOME/.bashrc" ] || die "nvm_detect_profile should have selected .bashrc"
|
||||
|
||||
rm .bashrc
|
||||
# Otherwise, it should favor .bash_profile if file exists
|
||||
_PROFILE=$(nvm_detect_profile)
|
||||
[ "_$_PROFILE" = "_$HOME/.bash_profile" ] || die "nvm_detect_profile should have selected .bash_profile"
|
||||
|
||||
rm .bash_profile
|
||||
# Otherwise, it should favor .zshrc if file exists
|
||||
_PROFILE=$(nvm_detect_profile)
|
||||
[ "_$_PROFILE" = "_$HOME/.zshrc" ] || die "nvm_detect_profile should have selected .zshrc"
|
||||
|
||||
rm .zshrc
|
||||
# Otherwise, it should favor .profile if file exists
|
||||
_PROFILE=$(nvm_detect_profile)
|
||||
[ "_$_PROFILE" = "_$HOME/.profile" ] || die "nvm_detect_profile should have selected .profile"
|
||||
|
||||
rm .profile
|
||||
# It should be empty if none is found
|
||||
_PROFILE=$(nvm_detect_profile)
|
||||
[ -z "$_PROFILE" ] || die "nvm_detect_profile should have echo'ed an empty value"
|
||||
|
||||
|
||||
cleanup
|
||||
|
9
test/install_script/nvm_do_install
Executable file
9
test/install_script/nvm_do_install
Executable file
@@ -0,0 +1,9 @@
|
||||
#!/bin/sh
|
||||
|
||||
die () { echo $@ ; exit 1; }
|
||||
|
||||
NVM_ENV=testing . ../../install.sh
|
||||
|
||||
#nvm_do_install is available
|
||||
type nvm_do_install > /dev/null 2>&1 || die 'nvm_do_install is not available'
|
||||
|
30
test/install_script/nvm_reset
Executable file
30
test/install_script/nvm_reset
Executable file
@@ -0,0 +1,30 @@
|
||||
#!/bin/sh
|
||||
|
||||
cleanup () {
|
||||
unset -f safe_type die cleanup
|
||||
}
|
||||
die () { echo $@ ; cleanup ; exit 1; }
|
||||
|
||||
NVM_ENV=testing . ../../install.sh
|
||||
|
||||
safe_type() {
|
||||
type "$1" > /dev/null 2>&1
|
||||
}
|
||||
|
||||
# Check nvm_reset exists
|
||||
safe_type nvm_reset || die 'nvm_reset is not available'
|
||||
|
||||
# Apply nvm_reset
|
||||
nvm_reset
|
||||
|
||||
# The names should be unset
|
||||
! safe_type nvm_do_install || die 'nvm_do_install is still available'
|
||||
! safe_type nvm_has || die 'nvm_has is still available'
|
||||
! safe_type nvm_download || die 'nvm_download is still available'
|
||||
! safe_type install_nvm_as_script || die 'install_nvm_as_script is still available'
|
||||
! safe_type install_nvm_from_git || die 'install_nvm_from_git is still available'
|
||||
! safe_type nvm_reset || die 'nvm_reset is still available'
|
||||
! safe_type nvm_detect_profile || die 'nvm_detect_profile is still available'
|
||||
|
||||
cleanup
|
||||
|
40
test/install_script/nvm_source
Executable file
40
test/install_script/nvm_source
Executable file
@@ -0,0 +1,40 @@
|
||||
#!/bin/sh
|
||||
|
||||
cleanup () {
|
||||
unset -f die cleanup
|
||||
unset NVM_SOURCE out
|
||||
}
|
||||
die () { echo $@ ; cleanup ; exit 1; }
|
||||
|
||||
NVM_ENV=testing . ../../install.sh
|
||||
|
||||
# nvm_source with no parameter returns the git endpoint
|
||||
echo $(nvm_source) | grep "nvm.git$" > /dev/null || die "nvm_source without arguments should return the location of the git repo"
|
||||
|
||||
# nvm_source with git parameter returns the location of the nvm repo
|
||||
echo $(nvm_source "git") | grep "nvm.git$" > /dev/null || die "nvm_source without arguments should return the location of the git repo"
|
||||
|
||||
# nvm_source with script parameter returns the location of nvm.sh
|
||||
echo $(nvm_source "script") | grep "nvm.sh$" > /dev/null || die "nvm_source \"script\" should return the location of nvm.sh"
|
||||
|
||||
# nvm_source with script-nvm-exec parameter returns the location of nvm-exec
|
||||
echo $(nvm_source "script-nvm-exec") | grep "nvm-exec$" > /dev/null || die "nvm_source \"script-nvm-exec\" should return the location of nvm.sh"
|
||||
|
||||
# nvm_source with any other parameter errors out and exits
|
||||
nvm_source "anything" 2> /dev/null && die "nvm_source with invalid parameter should exit"
|
||||
out=$(nvm_source "anything" 2>&1 >/dev/null) || : #Saving the process here
|
||||
[ -z "$out" ] && die "nvm_source with invalid parameter should error out"
|
||||
|
||||
#nvm_source should always return NVM_SOURCE no matter the parameters
|
||||
NVM_SOURCE="my_location"
|
||||
out=$(nvm_source)
|
||||
[ "_$out" = "_my_location" ] || die "nvm_source without arguments should have returned \$NVM_SOURCE. Got \"$out\""
|
||||
out=$(nvm_source "git")
|
||||
[ "_$out" = "_my_location" ] || die "nvm_source git should have returned \$NVM_SOURCE. Got \"$out\""
|
||||
out=$(nvm_source "script")
|
||||
[ "_$out" = "_my_location" ] || die "nvm_source script should have returned \$NVM_SOURCE. Got \"$out\""
|
||||
out=$(nvm_source "anything")
|
||||
[ "_$out" = "_my_location" ] || die "nvm_source script should have returned \$NVM_SOURCE. Got \"$out\""
|
||||
|
||||
cleanup
|
||||
|
@@ -1,6 +1,7 @@
|
||||
#!/bin/sh
|
||||
|
||||
set -e
|
||||
die () { echo $@ ; exit 1; }
|
||||
|
||||
. ../../nvm.sh
|
||||
|
||||
NVM_TEST_VERSION=v0.10.7
|
||||
@@ -9,9 +10,9 @@ NVM_TEST_VERSION=v0.10.7
|
||||
[ -e ../../$NVM_TEST_VERSION ] && rm -R ../../$NVM_TEST_VERSION
|
||||
|
||||
# Install from binary
|
||||
nvm install $NVM_TEST_VERSION
|
||||
nvm install $NVM_TEST_VERSION || die "install $NVM_TEST_VERSION failed"
|
||||
|
||||
# Check
|
||||
[ -d ../../$NVM_TEST_VERSION ]
|
||||
nvm run $NVM_TEST_VERSION --version | grep $NVM_TEST_VERSION
|
||||
nvm run $NVM_TEST_VERSION --version | grep $NVM_TEST_VERSION || die "'nvm run $NVM_TEST_VERSION --version | grep $NVM_TEST_VERSION' failed"
|
||||
|
||||
|
@@ -1,6 +1,7 @@
|
||||
#!/bin/sh
|
||||
|
||||
set -e
|
||||
die () { echo $@ ; exit 1; }
|
||||
|
||||
. ../../nvm.sh
|
||||
|
||||
NVM_TEST_VERSION=v0.10.7
|
||||
@@ -9,9 +10,9 @@ NVM_TEST_VERSION=v0.10.7
|
||||
[ -e ../../$NVM_TEST_VERSION ] && rm -R ../../$NVM_TEST_VERSION
|
||||
|
||||
# Install from source
|
||||
nvm install -s $NVM_TEST_VERSION
|
||||
nvm install -s $NVM_TEST_VERSION || die "'nvm install -s $NVM_TEST_VERSION' failed"
|
||||
|
||||
# Check
|
||||
[ -d ../../$NVM_TEST_VERSION ]
|
||||
nvm run $NVM_TEST_VERSION --version | grep $NVM_TEST_VERSION
|
||||
nvm run $NVM_TEST_VERSION --version | grep $NVM_TEST_VERSION || "'nvm run $NVM_TEST_VERSION --version | grep $NVM_TEST_VERSION' failed"
|
||||
|
||||
|
@@ -1,6 +1,7 @@
|
||||
#!/bin/sh
|
||||
|
||||
set -e
|
||||
die () { echo $@ ; exit 1; }
|
||||
|
||||
. ../../nvm.sh
|
||||
|
||||
# Remove the stuff we're clobbering.
|
||||
@@ -8,17 +9,17 @@ set -e
|
||||
[ -e ../../v0.9.12 ] && rm -R ../../v0.9.12
|
||||
|
||||
# Install from binary
|
||||
nvm install 0.9.7
|
||||
nvm i 0.9.12
|
||||
nvm install 0.9.7 || die "'nvm install 0.9.7' failed"
|
||||
nvm i 0.9.12 || die "'nvm i 0.9.12' failed"
|
||||
|
||||
# Check
|
||||
[ -d ../../v0.9.7 ]
|
||||
[ -d ../../v0.9.12 ]
|
||||
[ -d ../../v0.9.7 ] || die "v0.9.7 didn't exist"
|
||||
[ -d ../../v0.9.12 ] || die "v0.9.12 didn't exist"
|
||||
|
||||
# Use the first one
|
||||
nvm use 0.9.7
|
||||
nvm use 0.9.7 || die "'nvm use 0.9.7' failed"
|
||||
|
||||
# Use the latest one
|
||||
nvm use 0.9
|
||||
node --version | grep v0.9.12
|
||||
nvm use 0.9 || die "'nvm use 0.9' failed"
|
||||
node --version | grep v0.9.12 || die "'node --version' was not v0.9.12, got: $(node --version)"
|
||||
|
||||
|
@@ -1,6 +1,7 @@
|
||||
#!/bin/sh
|
||||
|
||||
set -e
|
||||
die () { echo $@ ; exit 1; }
|
||||
|
||||
. ../../nvm.sh
|
||||
|
||||
NVM_TEST_VERSION=v0.10.7
|
||||
@@ -11,10 +12,11 @@ NVM_TEST_VERSION=v0.10.7
|
||||
# Install from binary
|
||||
echo "$NVM_TEST_VERSION" > .nvmrc
|
||||
|
||||
nvm install
|
||||
nvm install || die "'nvm install' failed"
|
||||
|
||||
# Check
|
||||
[ -d ../../$NVM_TEST_VERSION ]
|
||||
nvm run $NVM_TEST_VERSION --version | grep $NVM_TEST_VERSION
|
||||
[ -d ../../$NVM_TEST_VERSION ] || die "./$NVM_TEST_VERSION did not exist"
|
||||
nvm run $NVM_TEST_VERSION --version | grep $NVM_TEST_VERSION \
|
||||
|| "'nvm run $NVM_TEST_VERSION --version | grep $NVM_TEST_VERSION' failed"
|
||||
|
||||
|
||||
|
@@ -1,6 +1,7 @@
|
||||
#!/bin/sh
|
||||
|
||||
set -e
|
||||
die () { echo $@ ; exit 1; }
|
||||
|
||||
. ../../nvm.sh
|
||||
|
||||
NVM_TEST_VERSION=v0.10.7
|
||||
@@ -11,10 +12,11 @@ NVM_TEST_VERSION=v0.10.7
|
||||
# Install from binary
|
||||
echo "$NVM_TEST_VERSION" > .nvmrc
|
||||
|
||||
nvm install -s
|
||||
nvm install -s || "'nvm install -s' failed"
|
||||
|
||||
# Check
|
||||
[ -d ../../$NVM_TEST_VERSION ]
|
||||
nvm run $NVM_TEST_VERSION --version | grep $NVM_TEST_VERSION
|
||||
[ -d ../../$NVM_TEST_VERSION ] || die "$NVM_TEST_VERSION did not exist"
|
||||
nvm run $NVM_TEST_VERSION --version | grep $NVM_TEST_VERSION \
|
||||
|| die "'nvm run $NVM_TEST_VERSION --version | grep $NVM_TEST_VERSION' failed"
|
||||
|
||||
|
||||
|
@@ -23,7 +23,7 @@ npm list --global | grep is-nan > /dev/null || die "is-nan 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 install 0.9.12 --copy-packages-from=0.9 || die "nvm install 0.9.12 --copy-packages-from=0.9 failed"
|
||||
nvm install 0.9.12 --reinstall-packages-from=0.9 || die "nvm install 0.9.12 --reinstall-packages-from=0.9 failed"
|
||||
|
||||
[ -d ../../v0.9.12 ] || die "nvm install 0.9.12 didn't install"
|
||||
|
@@ -1,6 +1,7 @@
|
||||
#!/bin/sh
|
||||
|
||||
. ../../nvm.sh
|
||||
nvm deactivate
|
||||
nvm uninstall v0.10.7
|
||||
|
||||
if [ -f ".nvmrc" ]; then
|
||||
|
@@ -1,16 +0,0 @@
|
||||
#!/bin/sh
|
||||
|
||||
die () { echo $@ ; exit 1; }
|
||||
|
||||
. ../../../nvm.sh
|
||||
|
||||
nvm use 0.10.28 > /dev/null
|
||||
|
||||
EXPECTED_MSG="Can not copy packages from the current version of node."
|
||||
ACTUAL_MSG="$(nvm copy-packages 0.10.28 2>&1 > /dev/null)"
|
||||
[ "~$ACTUAL_MSG" = "~$EXPECTED_MSG" ] || die "'nvm use 0.10.28 && nvm copy-packages 0.10.28' did not fail with the right message: '$ACTUAL_MESSAGE'"
|
||||
|
||||
EXPECTED_ERROR_CODE="2"
|
||||
ACTUAL_ERROR_CODE="$(nvm copy-packages 0.10.28 > /dev/null 2>&1 ; echo $?)"
|
||||
[ "~$ACTUAL_ERROR_CODE" = "~$EXPECTED_ERROR_CODE" ] || die "'nvm use 0.10.28 && nvm copy-packages 0.10.28' did not fail with the right error code: expected '$EXPECTED_ERROR_CODE', got '$ACTUAL_ERROR_CODE'"
|
||||
|
@@ -1,6 +1,7 @@
|
||||
#!/bin/sh
|
||||
|
||||
. ../../../nvm.sh
|
||||
nvm deactivate
|
||||
nvm uninstall v0.10.7
|
||||
nvm uninstall v0.11.7
|
||||
|
||||
|
@@ -0,0 +1,16 @@
|
||||
#!/bin/sh
|
||||
|
||||
die () { echo $@ ; exit 1; }
|
||||
|
||||
. ../../../nvm.sh
|
||||
|
||||
nvm use 0.10.28 > /dev/null
|
||||
|
||||
EXPECTED_MSG="Can not reinstall packages from the current version of node."
|
||||
ACTUAL_MSG="$(nvm reinstall-packages 0.10.28 2>&1 > /dev/null)"
|
||||
[ "~$ACTUAL_MSG" = "~$EXPECTED_MSG" ] || die "'nvm use 0.10.28 && nvm reinstall-packages 0.10.28' did not fail with the right message: '$ACTUAL_MESSAGE'"
|
||||
|
||||
EXPECTED_ERROR_CODE="2"
|
||||
ACTUAL_ERROR_CODE="$(nvm reinstall-packages 0.10.28 > /dev/null 2>&1 ; echo $?)"
|
||||
[ "~$ACTUAL_ERROR_CODE" = "~$EXPECTED_ERROR_CODE" ] || die "'nvm use 0.10.28 && nvm reinstall-packages 0.10.28' did not fail with the right error code: expected '$EXPECTED_ERROR_CODE', got '$ACTUAL_ERROR_CODE'"
|
||||
|
@@ -13,7 +13,7 @@ echo "$EXPECTED_PACKAGES" | xargs npm install -g --quiet
|
||||
nvm use 0.10.29
|
||||
ORIGINAL_PACKAGES=$(npm list -g --depth=0 | tail -n +2 | \grep -o -e ' [^@]*' | cut -c 2- | \grep -v npm | sort | uniq | xargs)
|
||||
|
||||
nvm copy-packages 0.10.28
|
||||
nvm reinstall-packages 0.10.28
|
||||
FINAL_PACKAGES=$(npm list -g --depth=0 | tail -n +2 | \grep -o -e ' [^@]*' | cut -c 2- | \grep -v npm | sort | uniq | xargs)
|
||||
|
||||
[ "$FINAL_PACKAGES" = "$EXPECTED_PACKAGES" ] || die "final packages ($FINAL_PACKAGES) did not match expected packages ($EXPECTED_PACKAGES)"
|
@@ -1,6 +1,7 @@
|
||||
#!/bin/sh
|
||||
|
||||
. ../../../nvm.sh
|
||||
nvm deactivate
|
||||
nvm uninstall v0.10.7
|
||||
|
||||
rm .nvmrc
|
||||
|
17
test/sourcing/Sourcing nvm.sh should use the default if available
Executable file
17
test/sourcing/Sourcing nvm.sh should use the default if available
Executable file
@@ -0,0 +1,17 @@
|
||||
#!/bin/sh
|
||||
|
||||
die () { echo $@ ; exit 1; }
|
||||
|
||||
echo '0.10.1' > ../../alias/default || die 'creation of default alias failed'
|
||||
|
||||
. ../../nvm.sh || die 'sourcing returned nonzero exit code'
|
||||
|
||||
NVM_LS_CURRENT="$(nvm ls current | \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_COLORED="$(nvm ls current | sed -n l)"
|
||||
|
||||
NVM_ALIAS_DEFAULT="$(nvm alias default)"
|
||||
[ "_$NVM_ALIAS_DEFAULT" = "_default -> 0.10.1 (-> v0.10.1)" ] \
|
||||
|| die "'nvm alias default did not return 'default -> 0.10.1 (-> v0.10.1)', got '$NVM_ALIAS_DEFAULT'"
|
||||
|
12
test/sourcing/setup
Executable file
12
test/sourcing/setup
Executable file
@@ -0,0 +1,12 @@
|
||||
#!/bin/sh
|
||||
|
||||
mkdir -p ../../alias
|
||||
rm -f ../../.nvmrc
|
||||
rm -rf ../../v0.10.7
|
||||
rm -rf ../../v0.9.7
|
||||
rm -rf ../../v0.9.12
|
||||
|
||||
. ../../nvm.sh
|
||||
nvm install 0.10.1 || echo >&2 'nvm install 0.10.1 failed'
|
||||
nvm unload || echo >&2 'nvm unload failed'
|
||||
|
7
test/sourcing/teardown
Executable file
7
test/sourcing/teardown
Executable file
@@ -0,0 +1,7 @@
|
||||
#!/bin/sh
|
||||
|
||||
rm -rf ../../alias
|
||||
rm -rf ../../v0.10.1
|
||||
rm -rf ../../v0.10.2
|
||||
rm -f ../../.nvmrc
|
||||
|
Reference in New Issue
Block a user