Compare commits
109 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
96c96ec714 | ||
|
|
475b8bd6b4 | ||
|
|
5e805905ca | ||
|
|
2dec01da9c | ||
|
|
63672641a5 | ||
|
|
94bba31de3 | ||
|
|
f70530ef18 | ||
|
|
ec33e8b720 | ||
|
|
a4f89c6223 | ||
|
|
517817f1a3 | ||
|
|
a6f5eff0f3 | ||
|
|
0aac462b15 | ||
|
|
bb2fe618cb | ||
|
|
eb5cecc970 | ||
|
|
36f933984d | ||
|
|
54d2d70048 | ||
|
|
e1009149c9 | ||
|
|
153ee6887e | ||
|
|
295f2b7db4 | ||
|
|
356ac7a697 | ||
|
|
64c88ce62e | ||
|
|
4612d8d827 | ||
|
|
6644f33a77 | ||
|
|
cbf0f12aac | ||
|
|
de93dc46d0 | ||
|
|
7ea15a7618 | ||
|
|
6a114eddcc | ||
|
|
e4149c380b | ||
|
|
caa69bc500 | ||
|
|
e01bcb740b | ||
|
|
276d55c912 | ||
|
|
0dc177bf9c | ||
|
|
c34502ebc2 | ||
|
|
3d764e6833 | ||
|
|
a26ef4f1be | ||
|
|
d68f667464 | ||
|
|
c966204cd6 | ||
|
|
d72b35b7b8 | ||
|
|
d50a0f46e9 | ||
|
|
82393f5b36 | ||
|
|
a1a8e5a51b | ||
|
|
108f630732 | ||
|
|
96e73825bd | ||
|
|
9fc20bb14b | ||
|
|
3401d15a18 | ||
|
|
394e8505d9 | ||
|
|
fc86834e29 | ||
|
|
609d9ee4ea | ||
|
|
70370a857f | ||
|
|
65a986c633 | ||
|
|
3cc5d6af67 | ||
|
|
999c4111c1 | ||
|
|
3d69cf7437 | ||
|
|
207521d54b | ||
|
|
7750253bca | ||
|
|
14b23bfa95 | ||
|
|
bf7bd3e793 | ||
|
|
2b63f37f8d | ||
|
|
230b479648 | ||
|
|
5802ac3ea7 | ||
|
|
b18126cb15 | ||
|
|
c16919becd | ||
|
|
8ae7a37d43 | ||
|
|
ceb66d1356 | ||
|
|
16a730f4cc | ||
|
|
f8064b259d | ||
|
|
f8ee25ab5b | ||
|
|
fb48129cd4 | ||
|
|
9e154b159e | ||
|
|
fb853614a7 | ||
|
|
0d9329435c | ||
|
|
a0d04d0b6b | ||
|
|
6c1a310846 | ||
|
|
758141f41e | ||
|
|
7d22e0c458 | ||
|
|
cd481ff548 | ||
|
|
12ca8f2607 | ||
|
|
e58d4abf11 | ||
|
|
820074e1d7 | ||
|
|
3d6b7976e7 | ||
|
|
3190effedd | ||
|
|
d0617b5b79 | ||
|
|
286c808739 | ||
|
|
f0d81e2d33 | ||
|
|
4768973a85 | ||
|
|
4508f7c33e | ||
|
|
ea4264645b | ||
|
|
a216f56443 | ||
|
|
c8efe3d28a | ||
|
|
0717d5f995 | ||
|
|
6cfc309336 | ||
|
|
dd1a9ca6a0 | ||
|
|
4ba7ee5797 | ||
|
|
40c9d6fd11 | ||
|
|
2db71a85a5 | ||
|
|
64b16faf72 | ||
|
|
be56ff3b2e | ||
|
|
59e27f8108 | ||
|
|
0f1f3ed29c | ||
|
|
2116d2ff91 | ||
|
|
0b4c1e14cf | ||
|
|
e1b7496cf0 | ||
|
|
8a87133f71 | ||
|
|
0792945824 | ||
|
|
a6819b3018 | ||
|
|
3d3d9d3a8d | ||
|
|
3e74bac964 | ||
|
|
1eaf6b53e4 | ||
|
|
24c60e4e51 |
1
.gitattributes
vendored
Normal file
1
.gitattributes
vendored
Normal file
@@ -0,0 +1 @@
|
|||||||
|
*.sh eol=lf
|
||||||
@@ -1,17 +1,16 @@
|
|||||||
language: c # defaults to ruby
|
language: c # defaults to ruby
|
||||||
|
addons:
|
||||||
|
apt_packages:
|
||||||
|
- zsh
|
||||||
|
- ksh
|
||||||
install:
|
install:
|
||||||
- sudo apt-get install zsh -y # ksh
|
|
||||||
- (mkdir /tmp/urchin && cd /tmp/urchin && curl -s "$(curl -s https://registry.npmjs.com/urchin | grep -Eo '"tarball":\s*"[^"]+"' | tail -n 1 | awk -F\" '{ print $4 }')" -O && tar -x -f urchin*)
|
- (mkdir /tmp/urchin && cd /tmp/urchin && curl -s "$(curl -s https://registry.npmjs.com/urchin | grep -Eo '"tarball":\s*"[^"]+"' | tail -n 1 | awk -F\" '{ print $4 }')" -O && tar -x -f urchin*)
|
||||||
- chmod +x /tmp/urchin/package/urchin
|
- chmod +x /tmp/urchin/package/urchin
|
||||||
- '[ -z "$WITHOUT_CURL" ] || sudo apt-get remove curl -y'
|
- '[ -z "$WITHOUT_CURL" ] || sudo apt-get remove curl -y'
|
||||||
script:
|
script:
|
||||||
- NVM_DIR=$TRAVIS_BUILD_DIR make TEST_SUITE=$TEST_SUITE URCHIN=/tmp/urchin/package/urchin test-$SHELL
|
- NVM_DIR=$TRAVIS_BUILD_DIR make TEST_SUITE=$TEST_SUITE URCHIN=/tmp/urchin/package/urchin test-$SHELL
|
||||||
env:
|
env:
|
||||||
- SHELL=sh TEST_SUITE=install_script
|
|
||||||
- SHELL=dash TEST_SUITE=install_script
|
|
||||||
- SHELL=bash 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=sh TEST_SUITE=fast
|
||||||
- SHELL=dash TEST_SUITE=fast
|
- SHELL=dash TEST_SUITE=fast
|
||||||
- SHELL=bash TEST_SUITE=fast
|
- SHELL=bash TEST_SUITE=fast
|
||||||
|
|||||||
@@ -8,15 +8,19 @@ Note: `nvm` does not support Windows (see [#284](https://github.com/creationix/n
|
|||||||
- [nvmw](https://github.com/hakobera/nvmw)
|
- [nvmw](https://github.com/hakobera/nvmw)
|
||||||
- [nvm-windows](https://github.com/coreybutler/nvm-windows)
|
- [nvm-windows](https://github.com/coreybutler/nvm-windows)
|
||||||
|
|
||||||
|
Note: `nvm` does not support [Fish] either (see [#303](https://github.com/creationix/nvm/issues/303)). Two alternatives exist, which are not supported nor developed by us:
|
||||||
|
- [nvm-fish-wrapper](https://github.com/passcod/nvm-fish-wrapper)
|
||||||
|
- [nvm-fish](https://github.com/Alex7Kom/nvm-fish) (does not support iojs)
|
||||||
|
|
||||||
### Install script
|
### Install script
|
||||||
|
|
||||||
To install you could use the [install script][2] using cURL:
|
To install you could use the [install script][2] using cURL:
|
||||||
|
|
||||||
curl https://raw.githubusercontent.com/creationix/nvm/v0.23.1/install.sh | bash
|
curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.25.2/install.sh | bash
|
||||||
|
|
||||||
or Wget:
|
or Wget:
|
||||||
|
|
||||||
wget -qO- https://raw.githubusercontent.com/creationix/nvm/v0.23.1/install.sh | bash
|
wget -qO- https://raw.githubusercontent.com/creationix/nvm/v0.25.2/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>
|
<sub>The script clones the nvm repository to `~/.nvm` and adds the source line to your profile (`~/.bash_profile`, `~/.zshrc` or `~/.profile`).</sub>
|
||||||
|
|
||||||
@@ -35,7 +39,7 @@ Or if you have `git` installed, then just clone it, and check out the latest ver
|
|||||||
|
|
||||||
To activate nvm, you need to source it from your shell:
|
To activate nvm, you need to source it from your shell:
|
||||||
|
|
||||||
source ~/.nvm/nvm.sh
|
. ~/.nvm/nvm.sh
|
||||||
|
|
||||||
I always add this line to my `~/.bashrc`, `~/.profile`, or `~/.zshrc` file to have it automatically sourced upon login.
|
I always add this line to my `~/.bashrc`, `~/.profile`, or `~/.zshrc` file to have it automatically sourced upon login.
|
||||||
Often I also put in a line to use a specific version of node.
|
Often I also put in a line to use a specific version of node.
|
||||||
@@ -72,7 +76,7 @@ In place of a version pointer like "0.10", you can use the special default alias
|
|||||||
nvm use stable
|
nvm use stable
|
||||||
nvm run unstable --version
|
nvm run unstable --version
|
||||||
|
|
||||||
If you want to install `io.js`:
|
If you want to install [io.js](https://github.com/iojs/io.js/):
|
||||||
|
|
||||||
nvm install iojs
|
nvm install iojs
|
||||||
|
|
||||||
@@ -183,6 +187,20 @@ nvm uninstall
|
|||||||
$ nvm uninstall [tab][tab]
|
$ nvm uninstall [tab][tab]
|
||||||
my_alias default v0.6.21 v0.8.26 v0.10.28
|
my_alias default v0.6.21 v0.8.26 v0.10.28
|
||||||
|
|
||||||
|
## Compatibility Issues
|
||||||
|
`nvm` will encounter some issues if you have some non-default settings set. (see [#606](/../../issues/606))
|
||||||
|
The following are known to cause issues:
|
||||||
|
|
||||||
|
Inside `~/.npmrc`
|
||||||
|
```
|
||||||
|
prefix='some/path'
|
||||||
|
```
|
||||||
|
Environment Variables:
|
||||||
|
```
|
||||||
|
$NPM_CONFIG_PREFIX
|
||||||
|
$PREFIX
|
||||||
|
```
|
||||||
|
|
||||||
## Problems
|
## Problems
|
||||||
|
|
||||||
If you try to install a node version and the installation fails, be sure to delete the node downloads from src (~/.nvm/src/) or you might get an error when trying to reinstall them again or you might get an error like the following:
|
If you try to install a node version and the installation fails, be sure to delete the node downloads from src (~/.nvm/src/) or you might get an error when trying to reinstall them again or you might get an error like the following:
|
||||||
@@ -193,7 +211,7 @@ Where's my 'sudo node'? Checkout this link:
|
|||||||
|
|
||||||
https://github.com/creationix/nvm/issues/43
|
https://github.com/creationix/nvm/issues/43
|
||||||
|
|
||||||
on Arch Linux and other systems using python3 by default, before running *install* you need to
|
On Arch Linux and other systems using python3 by default, before running *install* you need to
|
||||||
|
|
||||||
export PYTHON=python2
|
export PYTHON=python2
|
||||||
|
|
||||||
@@ -202,7 +220,7 @@ After the v0.8.6 release of node, nvm tries to install from binary packages. But
|
|||||||
nvm install -s 0.8.6
|
nvm install -s 0.8.6
|
||||||
|
|
||||||
[1]: https://github.com/creationix/nvm.git
|
[1]: https://github.com/creationix/nvm.git
|
||||||
[2]: https://github.com/creationix/nvm/blob/v0.23.1/install.sh
|
[2]: https://github.com/creationix/nvm/blob/v0.25.2/install.sh
|
||||||
[3]: https://travis-ci.org/creationix/nvm
|
[3]: https://travis-ci.org/creationix/nvm
|
||||||
[Urchin]: https://github.com/scraperwiki/urchin
|
[Urchin]: https://github.com/scraperwiki/urchin
|
||||||
|
[Fish]: http://fishshell.com
|
||||||
|
|||||||
@@ -73,7 +73,7 @@ __nvm ()
|
|||||||
previous_word="${COMP_WORDS[COMP_CWORD-1]}"
|
previous_word="${COMP_WORDS[COMP_CWORD-1]}"
|
||||||
|
|
||||||
case "$previous_word" in
|
case "$previous_word" in
|
||||||
use|run|ls|list|uninstall) __nvm_installed_nodes ;;
|
use|run|exec|ls|list|uninstall) __nvm_installed_nodes ;;
|
||||||
alias|unalias) __nvm_alias ;;
|
alias|unalias) __nvm_alias ;;
|
||||||
*) __nvm_commands ;;
|
*) __nvm_commands ;;
|
||||||
esac
|
esac
|
||||||
|
|||||||
97
install.sh
97
install.sh
@@ -2,6 +2,8 @@
|
|||||||
|
|
||||||
set -e
|
set -e
|
||||||
|
|
||||||
|
{ # this ensures the entire script is downloaded #
|
||||||
|
|
||||||
nvm_has() {
|
nvm_has() {
|
||||||
type "$1" > /dev/null 2>&1
|
type "$1" > /dev/null 2>&1
|
||||||
}
|
}
|
||||||
@@ -11,38 +13,38 @@ if [ -z "$NVM_DIR" ]; then
|
|||||||
fi
|
fi
|
||||||
|
|
||||||
nvm_latest_version() {
|
nvm_latest_version() {
|
||||||
echo "v0.23.1"
|
echo "v0.25.2"
|
||||||
}
|
}
|
||||||
|
|
||||||
#
|
#
|
||||||
# Outputs the location to NVM depending on:
|
# Outputs the location to NVM depending on:
|
||||||
# * The availability of $NVM_SOURCE
|
# * The availability of $NVM_SOURCE
|
||||||
# * The method used ("script" or "git" in the script, defaults to "git")
|
# * The method used ("script" or "git" in the script, defaults to "git")
|
||||||
# NVM_SOURCE always takes precedence
|
# NVM_SOURCE always takes precedence unless the method is "script-nvm-exec"
|
||||||
#
|
#
|
||||||
nvm_source() {
|
nvm_source() {
|
||||||
local NVM_METHOD
|
local NVM_METHOD
|
||||||
NVM_METHOD="$1"
|
NVM_METHOD="$1"
|
||||||
if [ -z "$NVM_SOURCE" ]; then
|
local NVM_SOURCE_URL
|
||||||
local NVM_SOURCE
|
NVM_SOURCE_URL="$NVM_SOURCE"
|
||||||
|
if [ "_$NVM_METHOD" = "_script-nvm-exec" ]; then
|
||||||
|
NVM_SOURCE_URL="https://raw.githubusercontent.com/creationix/nvm/$(nvm_latest_version)/nvm-exec"
|
||||||
|
elif [ -z "$NVM_SOURCE_URL" ]; then
|
||||||
if [ "_$NVM_METHOD" = "_script" ]; then
|
if [ "_$NVM_METHOD" = "_script" ]; then
|
||||||
NVM_SOURCE="https://raw.githubusercontent.com/creationix/nvm/$(nvm_latest_version)/nvm.sh"
|
NVM_SOURCE_URL="https://raw.githubusercontent.com/creationix/nvm/$(nvm_latest_version)/nvm.sh"
|
||||||
elif [ "_$NVM_METHOD" = "_script-nvm-exec" ]; then
|
|
||||||
NVM_SOURCE="https://raw.githubusercontent.com/creationix/nvm/$(nvm_latest_version)/nvm-exec"
|
|
||||||
elif [ "_$NVM_METHOD" = "_git" ] || [ -z "$NVM_METHOD" ]; then
|
elif [ "_$NVM_METHOD" = "_git" ] || [ -z "$NVM_METHOD" ]; then
|
||||||
NVM_SOURCE="https://github.com/creationix/nvm.git"
|
NVM_SOURCE_URL="https://github.com/creationix/nvm.git"
|
||||||
else
|
else
|
||||||
echo >&2 "Unexpected value \"$NVM_METHOD\" for \$NVM_METHOD"
|
echo >&2 "Unexpected value \"$NVM_METHOD\" for \$NVM_METHOD"
|
||||||
return 1
|
return 1
|
||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
echo "$NVM_SOURCE"
|
echo "$NVM_SOURCE_URL"
|
||||||
return 0
|
|
||||||
}
|
}
|
||||||
|
|
||||||
nvm_download() {
|
nvm_download() {
|
||||||
if nvm_has "curl"; then
|
if nvm_has "curl"; then
|
||||||
curl $*
|
curl -q $*
|
||||||
elif nvm_has "wget"; then
|
elif nvm_has "wget"; then
|
||||||
# Emulate curl with wget
|
# Emulate curl with wget
|
||||||
ARGS=$(echo "$*" | command sed -e 's/--progress-bar /--progress=bar /' \
|
ARGS=$(echo "$*" | command sed -e 's/--progress-bar /--progress=bar /' \
|
||||||
@@ -69,13 +71,21 @@ install_nvm_from_git() {
|
|||||||
mkdir -p "$NVM_DIR"
|
mkdir -p "$NVM_DIR"
|
||||||
command git clone "$(nvm_source git)" "$NVM_DIR"
|
command git clone "$(nvm_source git)" "$NVM_DIR"
|
||||||
fi
|
fi
|
||||||
cd "$NVM_DIR" && command git checkout --quiet $(nvm_latest_version) && command git branch --quiet -D master >/dev/null 2>&1
|
cd "$NVM_DIR" && command git checkout --quiet $(nvm_latest_version)
|
||||||
|
if [ ! -z "$(cd "$NVM_DIR" && git show-ref refs/heads/master)" ]; then
|
||||||
|
if git branch --quiet 2>/dev/null; then
|
||||||
|
cd "$NVM_DIR" && command git branch --quiet -D master >/dev/null 2>&1
|
||||||
|
else
|
||||||
|
echo >&2 "Your version of git is out of date. Please update it!"
|
||||||
|
cd "$NVM_DIR" && command git branch -D master >/dev/null 2>&1
|
||||||
|
fi
|
||||||
|
fi
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
install_nvm_as_script() {
|
install_nvm_as_script() {
|
||||||
local NVM_SOURCE
|
local NVM_SOURCE_LOCAL
|
||||||
NVM_SOURCE=$(nvm_source script)
|
NVM_SOURCE_LOCAL=$(nvm_source script)
|
||||||
local NVM_EXEC_SOURCE
|
local NVM_EXEC_SOURCE
|
||||||
NVM_EXEC_SOURCE=$(nvm_source script-nvm-exec)
|
NVM_EXEC_SOURCE=$(nvm_source script-nvm-exec)
|
||||||
|
|
||||||
@@ -86,8 +96,8 @@ install_nvm_as_script() {
|
|||||||
else
|
else
|
||||||
echo "=> Downloading nvm as script to '$NVM_DIR'"
|
echo "=> Downloading nvm as script to '$NVM_DIR'"
|
||||||
fi
|
fi
|
||||||
nvm_download -s "$NVM_SOURCE" -o "$NVM_DIR/nvm.sh" || {
|
nvm_download -s "$NVM_SOURCE_LOCAL" -o "$NVM_DIR/nvm.sh" || {
|
||||||
echo >&2 "Failed to download '$NVM_SOURCE'"
|
echo >&2 "Failed to download '$NVM_SOURCE_LOCAL'"
|
||||||
return 1
|
return 1
|
||||||
}
|
}
|
||||||
nvm_download -s "$NVM_EXEC_SOURCE" -o "$NVM_DIR/nvm-exec" || {
|
nvm_download -s "$NVM_EXEC_SOURCE" -o "$NVM_DIR/nvm-exec" || {
|
||||||
@@ -120,6 +130,53 @@ nvm_detect_profile() {
|
|||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#
|
||||||
|
# Check whether the user has any globally-installed npm modules in their system
|
||||||
|
# Node, and warn them if so.
|
||||||
|
#
|
||||||
|
nvm_check_global_modules() {
|
||||||
|
command -v npm >/dev/null 2>&1 || return 0
|
||||||
|
|
||||||
|
local NPM_VERSION
|
||||||
|
NPM_VERSION="$(npm --version)"
|
||||||
|
NPM_VERSION="${NPM_VERSION:--1}"
|
||||||
|
[ "${NPM_VERSION%%[!-0-9]*}" -gt 0 ] || return 0
|
||||||
|
|
||||||
|
local NPM_GLOBAL_MODULES
|
||||||
|
NPM_GLOBAL_MODULES="$(
|
||||||
|
npm list -g --depth=0 |
|
||||||
|
sed '/ npm@/d' |
|
||||||
|
sed '/ (empty)$/d'
|
||||||
|
)"
|
||||||
|
|
||||||
|
local MODULE_COUNT
|
||||||
|
MODULE_COUNT="$(
|
||||||
|
printf %s\\n "$NPM_GLOBAL_MODULES" |
|
||||||
|
sed -ne '1!p' | # Remove the first line
|
||||||
|
wc -l | tr -d ' ' # Count entries
|
||||||
|
)"
|
||||||
|
|
||||||
|
if [ $MODULE_COUNT -ne 0 ]; then
|
||||||
|
cat <<-'END_MESSAGE'
|
||||||
|
=> You currently have modules installed globally with `npm`. These will no
|
||||||
|
=> longer be linked to the active version of Node when you install a new node
|
||||||
|
=> with `nvm`; and they may (depending on how you construct your `$PATH`)
|
||||||
|
=> override the binaries of modules installed with `nvm`:
|
||||||
|
|
||||||
|
END_MESSAGE
|
||||||
|
printf %s\\n "$NPM_GLOBAL_MODULES"
|
||||||
|
cat <<-'END_MESSAGE'
|
||||||
|
|
||||||
|
=> If you wish to uninstall them at a later point (or re-install them under your
|
||||||
|
=> `nvm` Nodes), you can remove them from the system Node as follows:
|
||||||
|
|
||||||
|
$ nvm use system
|
||||||
|
$ npm uninstall -g a_module
|
||||||
|
|
||||||
|
END_MESSAGE
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
nvm_do_install() {
|
nvm_do_install() {
|
||||||
if [ -z "$METHOD" ]; then
|
if [ -z "$METHOD" ]; then
|
||||||
# Autodetect install method
|
# Autodetect install method
|
||||||
@@ -169,6 +226,8 @@ nvm_do_install() {
|
|||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
nvm_check_global_modules
|
||||||
|
|
||||||
echo "=> Close and reopen your terminal to start using nvm"
|
echo "=> Close and reopen your terminal to start using nvm"
|
||||||
nvm_reset
|
nvm_reset
|
||||||
}
|
}
|
||||||
@@ -178,7 +237,11 @@ nvm_do_install() {
|
|||||||
# during the execution of the install script
|
# during the execution of the install script
|
||||||
#
|
#
|
||||||
nvm_reset() {
|
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_latest_version
|
unset -f nvm_reset nvm_has nvm_latest_version \
|
||||||
|
nvm_source nvm_download install_nvm_as_script install_nvm_from_git \
|
||||||
|
nvm_detect_profile nvm_check_global_modules nvm_do_install
|
||||||
}
|
}
|
||||||
|
|
||||||
[ "_$NVM_ENV" = "_testing" ] || nvm_do_install
|
[ "_$NVM_ENV" = "_testing" ] || nvm_do_install
|
||||||
|
|
||||||
|
} # this ensures the entire script is downloaded #
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"name": "nvm",
|
"name": "nvm",
|
||||||
"version": "0.23.1",
|
"version": "0.25.2",
|
||||||
"description": "Node Version Manager - Simple bash script to manage multiple active node.js versions",
|
"description": "Node Version Manager - Simple bash script to manage multiple active node.js versions",
|
||||||
"directories": {
|
"directories": {
|
||||||
"test": "test"
|
"test": "test"
|
||||||
@@ -30,8 +30,8 @@
|
|||||||
},
|
},
|
||||||
"homepage": "https://github.com/creationix/nvm",
|
"homepage": "https://github.com/creationix/nvm",
|
||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
"replace": "~0.3.0",
|
"replace": "^0.3.0",
|
||||||
"semver": "~4.2.0",
|
"semver": "^4.3.4",
|
||||||
"urchin": "~0.0.5"
|
"urchin": "^0.0.5"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -11,8 +11,16 @@ STABLE_VERSION="$(nvm_version "$EXPECTED_STABLE")"
|
|||||||
echo "$NVM_ALIAS_OUTPUT" | \grep -e "^stable -> $EXPECTED_STABLE (-> $STABLE_VERSION) (default)$" \
|
echo "$NVM_ALIAS_OUTPUT" | \grep -e "^stable -> $EXPECTED_STABLE (-> $STABLE_VERSION) (default)$" \
|
||||||
|| die "nvm alias did not contain the default local stable node version"
|
|| die "nvm alias did not contain the default local stable node version"
|
||||||
|
|
||||||
|
echo "$NVM_ALIAS_OUTPUT" | \grep -e "^node -> stable (-> $STABLE_VERSION) (default)$" \
|
||||||
|
|| die "nvm alias did not contain the default local stable node version under 'node'"
|
||||||
|
|
||||||
EXPECTED_UNSTABLE="$(nvm_print_implicit_alias local unstable)"
|
EXPECTED_UNSTABLE="$(nvm_print_implicit_alias local unstable)"
|
||||||
UNSTABLE_VERSION="$(nvm_version "$EXPECTED_UNSTABLE")"
|
UNSTABLE_VERSION="$(nvm_version "$EXPECTED_UNSTABLE")"
|
||||||
echo "$NVM_ALIAS_OUTPUT" | \grep -e "^unstable -> $EXPECTED_UNSTABLE (-> $UNSTABLE_VERSION) (default)$" \
|
echo "$NVM_ALIAS_OUTPUT" | \grep -e "^unstable -> $EXPECTED_UNSTABLE (-> $UNSTABLE_VERSION) (default)$" \
|
||||||
|| die "nvm alias did not contain the default local unstable node version"
|
|| die "nvm alias did not contain the default local unstable node version"
|
||||||
|
|
||||||
|
EXPECTED_IOJS="$(nvm_print_implicit_alias local iojs)"
|
||||||
|
IOJS_VERSION="$(nvm_version "$EXPECTED_IOJS")"
|
||||||
|
echo "$NVM_ALIAS_OUTPUT" | \grep -e "^iojs -> $EXPECTED_IOJS (-> $IOJS_VERSION) (default)$" \
|
||||||
|
|| die "nvm alias did not contain the default local iojs version"
|
||||||
|
|
||||||
|
|||||||
@@ -6,12 +6,16 @@ die () { echo $@ ; cleanup ; exit 1; }
|
|||||||
cleanup () {
|
cleanup () {
|
||||||
rm -rf ../../../alias/stable
|
rm -rf ../../../alias/stable
|
||||||
rm -rf ../../../alias/unstable
|
rm -rf ../../../alias/unstable
|
||||||
|
rm -rf ../../../alias/node
|
||||||
|
rm -rf ../../../alias/iojs
|
||||||
rm -rf ../../../v0.8.1
|
rm -rf ../../../v0.8.1
|
||||||
rm -rf ../../../v0.9.1
|
rm -rf ../../../v0.9.1
|
||||||
|
rm -rf ../../../versions/io.js/v0.2.1
|
||||||
}
|
}
|
||||||
|
|
||||||
mkdir ../../../v0.8.1
|
mkdir ../../../v0.8.1
|
||||||
mkdir ../../../v0.9.1
|
mkdir ../../../v0.9.1
|
||||||
|
mkdir -p ../../../versions/io.js/v0.2.1
|
||||||
|
|
||||||
EXPECTED_STABLE="$(nvm_print_implicit_alias local stable)"
|
EXPECTED_STABLE="$(nvm_print_implicit_alias local stable)"
|
||||||
STABLE_VERSION="$(nvm_version "$EXPECTED_STABLE")"
|
STABLE_VERSION="$(nvm_version "$EXPECTED_STABLE")"
|
||||||
@@ -24,14 +28,22 @@ UNSTABLE_VERSION="$(nvm_version "$EXPECTED_UNSTABLE")"
|
|||||||
|
|
||||||
nvm alias stable "$EXPECTED_UNSTABLE"
|
nvm alias stable "$EXPECTED_UNSTABLE"
|
||||||
nvm alias unstable "$EXPECTED_STABLE"
|
nvm alias unstable "$EXPECTED_STABLE"
|
||||||
|
nvm alias node stable
|
||||||
|
nvm alias iojs unstable
|
||||||
|
|
||||||
NVM_ALIAS_OUTPUT=$(nvm alias)
|
NVM_ALIAS_OUTPUT=$(nvm alias)
|
||||||
|
|
||||||
echo "$NVM_ALIAS_OUTPUT" | \grep -e "^stable -> $EXPECTED_UNSTABLE (-> $UNSTABLE_VERSION)$" \
|
echo "$NVM_ALIAS_OUTPUT" | command grep -e "^stable -> $EXPECTED_UNSTABLE (-> $UNSTABLE_VERSION)$" \
|
||||||
|| die "nvm alias did not contain the overridden 'stable' alias"
|
|| die "nvm alias did not contain the overridden 'stable' alias"
|
||||||
|
|
||||||
echo "$NVM_ALIAS_OUTPUT" | \grep -e "^unstable -> $EXPECTED_STABLE (-> $STABLE_VERSION)$" \
|
echo "$NVM_ALIAS_OUTPUT" | command grep -e "^unstable -> $EXPECTED_STABLE (-> $STABLE_VERSION)$" \
|
||||||
|| die "nvm alias did not contain the overridden 'unstable' alias"
|
|| die "nvm alias did not contain the overridden 'unstable' alias"
|
||||||
|
|
||||||
|
echo "$NVM_ALIAS_OUTPUT" | command grep -e "^node -> stable (-> $UNSTABLE_VERSION)$" \
|
||||||
|
|| die "nvm alias did not contain the overridden 'node' alias"
|
||||||
|
|
||||||
|
echo "$NVM_ALIAS_OUTPUT" | command grep -e "^iojs -> unstable (-> $STABLE_VERSION)$" \
|
||||||
|
|| die "nvm alias did not contain the overridden 'iojs' alias"
|
||||||
|
|
||||||
cleanup
|
cleanup
|
||||||
|
|
||||||
|
|||||||
36
test/fast/Aliases/circular/nvm_resolve_local_alias
Executable file
36
test/fast/Aliases/circular/nvm_resolve_local_alias
Executable file
@@ -0,0 +1,36 @@
|
|||||||
|
#!/bin/sh
|
||||||
|
|
||||||
|
die () { echo $@ ; exit 1; }
|
||||||
|
|
||||||
|
. ../../../../nvm.sh
|
||||||
|
|
||||||
|
ALIAS="$(nvm_resolve_local_alias loopback)"
|
||||||
|
[ "_$ALIAS" = "_∞" ] || die "nvm_resolve_local_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_local_alias one)"
|
||||||
|
[ "_$ALIAS" = "_∞" ] || die "nvm_resolve_local_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_local_alias two)"
|
||||||
|
[ "_$ALIAS" = "_∞" ] || die "nvm_resolve_local_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_local_alias three)"
|
||||||
|
[ "_$ALIAS" = "_∞" ] || die "nvm_resolve_local_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_local_alias four)"
|
||||||
|
[ "_$ALIAS" = "_∞" ] || die "nvm_resolve_local_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"
|
||||||
|
|
||||||
18
test/fast/Aliases/nvm_ensure_default_set
Executable file
18
test/fast/Aliases/nvm_ensure_default_set
Executable file
@@ -0,0 +1,18 @@
|
|||||||
|
#!/bin/sh
|
||||||
|
|
||||||
|
die () { echo $@ ; exit 1; }
|
||||||
|
|
||||||
|
. ../../../nvm.sh
|
||||||
|
|
||||||
|
nvm alias default 0.1 >/dev/null || die "'nvm alias default 0.1' failed"
|
||||||
|
|
||||||
|
nvm_ensure_default_set 0.3 || die "'nvm_ensure_default_set' with an existing default alias exits 0"
|
||||||
|
|
||||||
|
nvm unalias default || die "'nvm unalias default' failed"
|
||||||
|
|
||||||
|
OUTPUT="$(nvm_ensure_default_set 0.2)"
|
||||||
|
EXPECTED_OUTPUT="Creating default alias: default -> 0.2 (-> iojs-v0.2.10)"
|
||||||
|
EXIT_CODE="$?"
|
||||||
|
|
||||||
|
[ "_$OUTPUT" = "_$EXPECTED_OUTPUT" ] || die "'nvm_ensure_default_set 0.2' did not output '$EXPECTED_OUTPUT', got '$OUTPUT'"
|
||||||
|
[ "_$EXIT_CODE" = "_0" ] || die "'nvm_ensure_default_set 0.2' did not exit with 0, got $EXIT_CODE"
|
||||||
@@ -21,8 +21,13 @@ EXIT_CODE=$(nvm_resolve_alias nonexistent ; echo $?)
|
|||||||
[ $EXIT_CODE = "2" ] || die "'nvm_resolve_alias nonexistent' did not return 2; got $EXIT_CODE"
|
[ $EXIT_CODE = "2" ] || die "'nvm_resolve_alias nonexistent' did not return 2; got $EXIT_CODE"
|
||||||
|
|
||||||
STABLE="$(nvm_resolve_alias stable)"
|
STABLE="$(nvm_resolve_alias stable)"
|
||||||
[ "_$STABLE" = "_v0.0.10" ] || die "'nvm_resolve_alias stable' was not v0.0.10; got $STABLE"
|
[ "_$STABLE" = "_v0.0" ] || die "'nvm_resolve_alias stable' was not v0.0; got $STABLE"
|
||||||
|
|
||||||
|
NODE="$(nvm_resolve_alias node)"
|
||||||
|
[ "_$NODE" = "_stable" ] || die "'nvm_resolve_alias node' was not stable; got $NODE"
|
||||||
|
|
||||||
UNSTABLE="$(nvm_resolve_alias unstable)"
|
UNSTABLE="$(nvm_resolve_alias unstable)"
|
||||||
[ "_$UNSTABLE" = "_v0.1.10" ] || die "'nvm_resolve_alias unstable' was not v0.1.10; got $UNSTABLE"
|
[ "_$UNSTABLE" = "_v0.1" ] || die "'nvm_resolve_alias unstable' was not v0.1; got $UNSTABLE"
|
||||||
|
|
||||||
|
IOJS="$(nvm_resolve_alias iojs)"
|
||||||
|
[ "_$IOJS" = "_iojs-v0.2" ] || die "'nvm_resolve_alias iojs' was not iojs-v0.2; got $IOJS"
|
||||||
|
|||||||
35
test/fast/Aliases/nvm_resolve_local_alias
Executable file
35
test/fast/Aliases/nvm_resolve_local_alias
Executable file
@@ -0,0 +1,35 @@
|
|||||||
|
#!/bin/sh
|
||||||
|
|
||||||
|
die () { echo $@ ; exit 1; }
|
||||||
|
|
||||||
|
. ../../../nvm.sh
|
||||||
|
|
||||||
|
EXIT_CODE=$(nvm_resolve_local_alias ; echo $?)
|
||||||
|
[ "_$EXIT_CODE" = "_1" ] || die "nvm_resolve_local_alias without an argument did not return 1; got $EXIT_CODE"
|
||||||
|
|
||||||
|
for i in $(seq 1 10)
|
||||||
|
do
|
||||||
|
STABLE_ALIAS="$(nvm_resolve_local_alias test-stable-$i)"
|
||||||
|
[ "_$STABLE_ALIAS" = "_v0.0.$i" ] \
|
||||||
|
|| die "'nvm_resolve_local_alias test-stable-$i' was not v0.0.$i; got $STABLE_ALIAS"
|
||||||
|
UNSTABLE_ALIAS="$(nvm_resolve_local_alias test-unstable-$i)"
|
||||||
|
[ "_$UNSTABLE_ALIAS" = "_v0.1.$i" ] \
|
||||||
|
|| die "'nvm_resolve_local_alias test-unstable-$i' was not v0.1.$i; got $UNSTABLE_ALIAS"
|
||||||
|
done
|
||||||
|
|
||||||
|
OUTPUT="$(nvm_resolve_local_alias nonexistent)"
|
||||||
|
EXIT_CODE=$(nvm_resolve_local_alias nonexistent > /dev/null 2>&1 ; echo $?)
|
||||||
|
[ "_$EXIT_CODE" = "_2" ] || die "'nvm_resolve_local_alias nonexistent' did not return 2; got $EXIT_CODE"
|
||||||
|
[ "_$OUTPUT" = "_" ] || die "'nvm_resolve_local_alias nonexistent' did not have empty output; got $OUTPUT"
|
||||||
|
|
||||||
|
STABLE="$(nvm_resolve_local_alias stable)"
|
||||||
|
[ "_$STABLE" = "_v0.0.10" ] || die "'nvm_resolve_local_alias stable' was not v0.0.10; got $STABLE"
|
||||||
|
|
||||||
|
NODE="$(nvm_resolve_local_alias node)"
|
||||||
|
[ "_$NODE" = "_v0.0.10" ] || die "'nvm_resolve_local_alias node' was not v0.0.10; got $NODE"
|
||||||
|
|
||||||
|
UNSTABLE="$(nvm_resolve_local_alias unstable)"
|
||||||
|
[ "_$UNSTABLE" = "_v0.1.10" ] || die "'nvm_resolve_local_alias unstable' was not v0.1.10; got $UNSTABLE"
|
||||||
|
|
||||||
|
IOJS="$(nvm_resolve_local_alias iojs)"
|
||||||
|
[ "_$IOJS" = "_iojs-v0.2.10" ] || die "'nvm_resolve_local_alias iojs' was not iojs-v0.2.10; got $IOJS"
|
||||||
@@ -6,4 +6,6 @@ for i in $(seq 1 10)
|
|||||||
mkdir -p ../../../v0.0.$i
|
mkdir -p ../../../v0.0.$i
|
||||||
echo 0.1.$i > ../../../alias/test-unstable-$i
|
echo 0.1.$i > ../../../alias/test-unstable-$i
|
||||||
mkdir -p ../../../v0.1.$i
|
mkdir -p ../../../v0.1.$i
|
||||||
|
echo 0.2.$i > ../../../alias/test-iojs-$i
|
||||||
|
mkdir -p ../../../versions/io.js/v0.2.$i
|
||||||
done
|
done
|
||||||
|
|||||||
@@ -6,8 +6,12 @@ for i in $(seq 1 10)
|
|||||||
rm -rf "../../../v0.0.$i"
|
rm -rf "../../../v0.0.$i"
|
||||||
rm -f "../../../alias/test-unstable-$i"
|
rm -f "../../../alias/test-unstable-$i"
|
||||||
rm -rf "../../../v0.1.$i"
|
rm -rf "../../../v0.1.$i"
|
||||||
|
rm -rf "../../../alias/test-iojs-$i"
|
||||||
|
rm -rf "../../../versions/io.js/v0.2.$i"
|
||||||
done
|
done
|
||||||
|
|
||||||
rm -f "../../../alias/stable"
|
rm -f "../../../alias/stable"
|
||||||
rm -f "../../../alias/unstable"
|
rm -f "../../../alias/unstable"
|
||||||
|
rm -f "../../../alias/node"
|
||||||
|
rm -f "../../../alias/iojs"
|
||||||
|
rm -f "../../../alias/default"
|
||||||
|
|||||||
7
test/fast/Listing versions/Running "nvm ls io" should return NA
Executable file
7
test/fast/Listing versions/Running "nvm ls io" should return NA
Executable file
@@ -0,0 +1,7 @@
|
|||||||
|
#!/bin/sh
|
||||||
|
|
||||||
|
. ../../../nvm.sh
|
||||||
|
|
||||||
|
nvm ls io
|
||||||
|
[ "$?" = "3" ]
|
||||||
|
|
||||||
@@ -5,9 +5,13 @@ die () { echo $@ ; exit 1; }
|
|||||||
. ../../nvm.sh
|
. ../../nvm.sh
|
||||||
|
|
||||||
nvm_has_system_node() { return 0; }
|
nvm_has_system_node() { return 0; }
|
||||||
[ "$(nvm use system 2>&1 | tail -n1)" = "Now using system version of node: $(node -v)." ] || die "Could not use system version of node"
|
nvm_print_npm_version() { return ' (npm v1.2.3)'; }
|
||||||
|
EXPECTED_OUTPUT="Now using system version of node: $(node -v)$(nvm_print_npm_version)"
|
||||||
|
[ "$(nvm use system 2>&1 | tail -n1)" = "$EXPECTED_OUTPUT" ] || die "Could not use system version of node"
|
||||||
|
|
||||||
nvm_has_system_node() { return 1; }
|
nvm_has_system_node() { return 1; }
|
||||||
[ "$(nvm use system 2>&1 | tail -n1)" = "System version of node not found." ] || die "Did not report error, system node not found"
|
nvm_print_npm_version() { return ''; }
|
||||||
|
EXPECTED_OUTPUT="System version of node not found."
|
||||||
|
[ "$(nvm use system 2>&1 | tail -n1)" = "$EXPECTED_OUTPUT" ] || die "Did not report error, system node not found"
|
||||||
nvm use system 2>&1 > /dev/null || [ $? -eq 127 ] || die "Did not return error code, system node not found"
|
nvm use system 2>&1 > /dev/null || [ $? -eq 127 ] || die "Did not return error code, system node not found"
|
||||||
|
|
||||||
|
|||||||
13
test/fast/Unit tests/nvm_ensure_default_set
Executable file
13
test/fast/Unit tests/nvm_ensure_default_set
Executable file
@@ -0,0 +1,13 @@
|
|||||||
|
#!/bin/sh
|
||||||
|
|
||||||
|
die () { echo $@ ; exit 1; }
|
||||||
|
|
||||||
|
. ../../../nvm.sh
|
||||||
|
|
||||||
|
EXPECTED_OUTPUT="nvm_ensure_default_set: a version is required"
|
||||||
|
OUTPUT="$(nvm_ensure_default_set 2>&1 >/dev/null)"
|
||||||
|
EXIT_CODE="$?"
|
||||||
|
[ "_$OUTPUT" = "_$EXPECTED_OUTPUT" ] || die "'nvm_ensure_default_set' did not output "$EXPECTED_OUTPUT", got "$OUTPUT""
|
||||||
|
[ "_$EXIT_CODE" = "_1" ] || die "'nvm_ensure_default_set' did not exit with 1, got "$EXIT_CODE""
|
||||||
|
|
||||||
|
# see test/fast/Aliases for remaining nvm_ensure_default_set tests
|
||||||
23
test/fast/Unit tests/nvm_ensure_version_installed
Executable file
23
test/fast/Unit tests/nvm_ensure_version_installed
Executable file
@@ -0,0 +1,23 @@
|
|||||||
|
#!/bin/sh
|
||||||
|
|
||||||
|
die () { echo $@ ; cleanup ; exit 1; }
|
||||||
|
cleanup () {
|
||||||
|
rm -rf "$(nvm_version_path v0.1.2)"
|
||||||
|
}
|
||||||
|
|
||||||
|
. ../../../nvm.sh
|
||||||
|
|
||||||
|
mkdir -p "$(nvm_version_path v0.1.2)"
|
||||||
|
|
||||||
|
OUTPUT="$(nvm_ensure_version_installed foo 2>&1)"
|
||||||
|
EXIT_CODE=$?
|
||||||
|
EXPECTED_OUTPUT='N/A: version "foo" is not yet installed'
|
||||||
|
[ "_$OUTPUT" = "_$EXPECTED_OUTPUT" ] || die "expected 'nvm_ensure_version_installed foo' to give $EXPECTED_OUTPUT, got $OUTPUT"
|
||||||
|
[ "_$EXIT_CODE" = "_1" ] || die "expected 'nvm_ensure_version_installed foo' to exit with 1, got $EXIT_CODE"
|
||||||
|
|
||||||
|
OUTPUT="$(nvm_ensure_version_installed 0.1)"
|
||||||
|
EXIT_CODE=$?
|
||||||
|
[ "_$OUTPUT" = "_" ] || die "expected 'nvm_ensure_version_installed 0.1' to have no output, got $OUTPUT"
|
||||||
|
[ "_$EXIT_CODE" = "_0" ] || die "expected 'nvm_ensure_version_installed 0.1' to exit with 0, got $EXIT_CODE"
|
||||||
|
|
||||||
|
cleanup
|
||||||
20
test/fast/Unit tests/nvm_is_alias
Executable file
20
test/fast/Unit tests/nvm_is_alias
Executable file
@@ -0,0 +1,20 @@
|
|||||||
|
#!/bin/sh
|
||||||
|
|
||||||
|
cleanup () { unalias foo; unalias grep; }
|
||||||
|
die () { echo $@ ; cleanup ; exit 1; }
|
||||||
|
|
||||||
|
. ../../../nvm.sh
|
||||||
|
|
||||||
|
alias foo='bar'
|
||||||
|
nvm_is_alias foo || die '"nvm_is_alias foo" was not true'
|
||||||
|
|
||||||
|
! nvm_is_alias nvm_is_alias || die '"nvm_is_alias nvm_is_alias was not false'
|
||||||
|
|
||||||
|
alias grep='grep'
|
||||||
|
unalias grep || die '"unalias grep" failed'
|
||||||
|
! nvm_is_alias grep || die '"nvm_is_alias grep" with unaliased grep was not false'
|
||||||
|
|
||||||
|
alias grep='grep'
|
||||||
|
nvm_is_alias grep || die '"nvm_is_alias grep" with aliased grep was not true'
|
||||||
|
|
||||||
|
cleanup
|
||||||
13
test/fast/Unit tests/nvm_is_valid_version
Executable file
13
test/fast/Unit tests/nvm_is_valid_version
Executable file
@@ -0,0 +1,13 @@
|
|||||||
|
#!/bin/sh
|
||||||
|
|
||||||
|
die () { echo $@ ; exit 1; }
|
||||||
|
|
||||||
|
. ../../../nvm.sh
|
||||||
|
|
||||||
|
nvm_is_valid_version 0.1.2 || die "nvm_is_valid_version 0.1.2 did not return 0"
|
||||||
|
nvm_is_valid_version foo && die "nvm_is_valid_version foo did not return 1"
|
||||||
|
nvm_is_valid_version iojs-1 || die "nvm_is_valid_version iojs-1 did not return 0"
|
||||||
|
nvm_is_valid_version iojs || die "nvm_is_valid_version iojs did not return 0"
|
||||||
|
nvm_is_valid_version node || die "nvm_is_valid_version node did not return 0"
|
||||||
|
nvm_is_valid_version stable || die "nvm_is_valid_version stable did not return 0"
|
||||||
|
nvm_is_valid_version unstable || die "nvm_is_valid_version unstable did not return 0"
|
||||||
@@ -3,14 +3,19 @@
|
|||||||
TEST_PWD=$(pwd)
|
TEST_PWD=$(pwd)
|
||||||
TEST_DIR="$TEST_PWD/nvm_ls_current_tmp"
|
TEST_DIR="$TEST_PWD/nvm_ls_current_tmp"
|
||||||
|
|
||||||
cleanup() { rm -rf "$TEST_DIR"; unset -f return_zero; unalias node; }
|
cleanup() { rm -rf "$TEST_DIR"; unset -f return_zero; alias node='node' ; unalias node; }
|
||||||
die () { echo $@ ; cleanup ; exit 1; }
|
die () { echo $@ ; cleanup ; exit 1; }
|
||||||
|
|
||||||
. ../../../nvm.sh
|
. ../../../nvm.sh
|
||||||
|
|
||||||
return_zero () { return 0; }
|
return_zero () { return 0; }
|
||||||
|
|
||||||
[ "$(nvm deactivate > /dev/null 2>&1 ; nvm_ls_current)" = "system" ] || die 'when deactivated, did not return "system"'
|
if nvm_has_system_node || nvm_has_system_iojs; then
|
||||||
|
EXPECTED_SYSTEM_NODE="system"
|
||||||
|
else
|
||||||
|
EXPECTED_SYSTEM_NODE="none"
|
||||||
|
fi
|
||||||
|
[ "_$(nvm deactivate > /dev/null 2>&1 ; nvm_ls_current)" = "_$EXPECTED_SYSTEM_NODE" ] || die "when deactivated, did not return $EXPECTED_SYSTEM_NODE"
|
||||||
|
|
||||||
rm -rf "$TEST_DIR"
|
rm -rf "$TEST_DIR"
|
||||||
mkdir "$TEST_DIR"
|
mkdir "$TEST_DIR"
|
||||||
|
|||||||
@@ -5,13 +5,17 @@ die () { echo $@ ; exit 1; }
|
|||||||
. ../../../nvm.sh
|
. ../../../nvm.sh
|
||||||
|
|
||||||
[ "~$(nvm_num_version_groups)" = "~0" ] || die "no args should give 0"
|
[ "~$(nvm_num_version_groups)" = "~0" ] || die "no args should give 0"
|
||||||
|
[ "~$(nvm_num_version_groups v)" = "~0" ] || die "just "v" should give 0"
|
||||||
|
[ "~$(nvm_num_version_groups .)" = "~0" ] || die "just "." should give 0"
|
||||||
[ "~$(nvm_num_version_groups a)" = "~1" ] || die "one letter should give 1"
|
[ "~$(nvm_num_version_groups a)" = "~1" ] || die "one letter should give 1"
|
||||||
|
|
||||||
[ "~$(nvm_num_version_groups 1)" = "~1" ] || die "1 should give 1"
|
[ "~$(nvm_num_version_groups 1)" = "~1" ] || die "1 should give 1"
|
||||||
|
[ "~$(nvm_num_version_groups 1.)" = "~1" ] || die "1. should give 1"
|
||||||
[ "~$(nvm_num_version_groups v1)" = "~1" ] || die "v1 should give 1"
|
[ "~$(nvm_num_version_groups v1)" = "~1" ] || die "v1 should give 1"
|
||||||
[ "~$(nvm_num_version_groups v1.)" = "~1" ] || die "v1. should give 1"
|
[ "~$(nvm_num_version_groups v1.)" = "~1" ] || die "v1. should give 1"
|
||||||
|
|
||||||
[ "~$(nvm_num_version_groups 1.2)" = "~2" ] || die "1.2 should give 2"
|
[ "~$(nvm_num_version_groups 1.2)" = "~2" ] || die "1.2 should give 2"
|
||||||
|
[ "~$(nvm_num_version_groups 1.2.)" = "~2" ] || die "1.2. should give 2"
|
||||||
[ "~$(nvm_num_version_groups v1.2)" = "~2" ] || die "v1.2 should give 2"
|
[ "~$(nvm_num_version_groups v1.2)" = "~2" ] || die "v1.2 should give 2"
|
||||||
[ "~$(nvm_num_version_groups v1.2.)" = "~2" ] || die "v1.2. should give 2"
|
[ "~$(nvm_num_version_groups v1.2.)" = "~2" ] || die "v1.2. should give 2"
|
||||||
|
|
||||||
|
|||||||
@@ -14,13 +14,13 @@ FIRST_EXIT_CODE="$(nvm_print_implicit_alias > /dev/null 2>&1 ; echo $?)"
|
|||||||
[ "_$FIRST_EXIT_CODE" = "_1" ] \
|
[ "_$FIRST_EXIT_CODE" = "_1" ] \
|
||||||
|| die "nvm_print_implicit_alias without local|remote had wrong exit code: expected 1, got $FIRST_EXIT_CODE"
|
|| 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."
|
EXPECTED_SECOND_MSG="Only implicit aliases 'stable', 'unstable', 'iojs', and 'node' are supported."
|
||||||
[ "_$(nvm_print_implicit_alias local 2>&1)" = "_$EXPECTED_SECOND_MSG" ] \
|
[ "_$(nvm_print_implicit_alias local 2>&1)" = "_$EXPECTED_SECOND_MSG" ] \
|
||||||
|| die "nvm_print_implicit_alias did not require stable|unstable as second argument"
|
|| die "nvm_print_implicit_alias did not require stable|unstable|iojs|node as second argument"
|
||||||
[ "_$(nvm_print_implicit_alias local foo 2>&1)" = "_$EXPECTED_SECOND_MSG" ] \
|
[ "_$(nvm_print_implicit_alias local foo 2>&1)" = "_$EXPECTED_SECOND_MSG" ] \
|
||||||
|| die "nvm_print_implicit_alias did not require stable|unstable as second argument"
|
|| die "nvm_print_implicit_alias did not require stable|unstable|iojs|node as second argument"
|
||||||
|
|
||||||
SECOND_EXIT_CODE="$(nvm_print_implicit_alias local > /dev/null 2>&1 ; echo $?)"
|
SECOND_EXIT_CODE="$(nvm_print_implicit_alias local > /dev/null 2>&1 ; echo $?)"
|
||||||
[ "_$SECOND_EXIT_CODE" = "_2" ] \
|
[ "_$SECOND_EXIT_CODE" = "_2" ] \
|
||||||
|| die "nvm_print_implicit_alias without stable|unstable had wrong exit code: expected 2, got $SECOND_EXIT_CODE"
|
|| die "nvm_print_implicit_alias without stable|unstable|iojs|node had wrong exit code: expected 2, got $SECOND_EXIT_CODE"
|
||||||
|
|
||||||
|
|||||||
@@ -7,7 +7,8 @@ cleanup() {
|
|||||||
rm -rf ../../../v0.4.6
|
rm -rf ../../../v0.4.6
|
||||||
rm -rf ../../../v0.5.7
|
rm -rf ../../../v0.5.7
|
||||||
rm -rf ../../../v0.7.7
|
rm -rf ../../../v0.7.7
|
||||||
unset -f nvm_ls_remote
|
rm -rf ../../../versions/io.js/v0.98.0
|
||||||
|
unset -f nvm_ls_remote nvm_ls_remote_iojs
|
||||||
}
|
}
|
||||||
|
|
||||||
. ../../../nvm.sh
|
. ../../../nvm.sh
|
||||||
@@ -17,13 +18,20 @@ mkdir ../../../v0.3.4
|
|||||||
mkdir ../../../v0.4.6
|
mkdir ../../../v0.4.6
|
||||||
mkdir ../../../v0.5.7
|
mkdir ../../../v0.5.7
|
||||||
mkdir ../../../v0.7.7
|
mkdir ../../../v0.7.7
|
||||||
|
mkdir -p ../../../versions/io.js/v0.98.0
|
||||||
|
|
||||||
LATEST_STABLE="$(nvm_print_implicit_alias local stable)"
|
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_STABLE" = "_0.4" ] || die "local stable is not latest even minor: expected 0.4, got $LATEST_STABLE"
|
||||||
|
|
||||||
|
LATEST_NODE="$(nvm_print_implicit_alias local node)"
|
||||||
|
[ "_$LATEST_NODE" = "_stable" ] || die "local node is not stable: expected stable, got $LATEST_NODE"
|
||||||
|
|
||||||
LATEST_UNSTABLE="$(nvm_print_implicit_alias local unstable)"
|
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"
|
[ "_$LATEST_UNSTABLE" = "_0.7" ] || die "local unstable is not latest odd minor: expected 0.7, got $LATEST_UNSTABLE"
|
||||||
|
|
||||||
|
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"
|
||||||
|
|
||||||
nvm_ls_remote() {
|
nvm_ls_remote() {
|
||||||
echo "v0.4.3"
|
echo "v0.4.3"
|
||||||
echo "v0.5.4"
|
echo "v0.5.4"
|
||||||
@@ -37,11 +45,25 @@ nvm_ls_remote() {
|
|||||||
echo "v0.9.7"
|
echo "v0.9.7"
|
||||||
}
|
}
|
||||||
|
|
||||||
|
nvm_ls_remote_iojs() {
|
||||||
|
echo "iojs-v0.1.0"
|
||||||
|
echo "iojs-v0.1.1"
|
||||||
|
echo "iojs-v0.7.8"
|
||||||
|
echo "iojs-v0.98.5"
|
||||||
|
echo "iojs-v0.99.0"
|
||||||
|
}
|
||||||
|
|
||||||
LATEST_STABLE="$(nvm_print_implicit_alias remote stable)"
|
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_STABLE" = "_0.6" ] || die "remote stable is not latest even minor: expected 0.6, got $LATEST_STABLE"
|
||||||
|
|
||||||
|
LATEST_NODE="$(nvm_print_implicit_alias remote node)"
|
||||||
|
[ "_$LATEST_NODE" = "_stable" ] || die "remote node is not stable: expected stable, got $LATEST_NODE"
|
||||||
|
|
||||||
LATEST_UNSTABLE="$(nvm_print_implicit_alias remote unstable)"
|
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"
|
[ "_$LATEST_UNSTABLE" = "_0.9" ] || die "remote unstable is not latest odd minor: expected 0.9, got $LATEST_UNSTABLE"
|
||||||
|
|
||||||
|
LATEST_IOJS="$(nvm_print_implicit_alias remote iojs)"
|
||||||
|
[ "_$LATEST_IOJS" = "_iojs-v0.99" ] || die "remote iojs is not latest: expected iojs-v0.99, got $LATEST_IOJS"
|
||||||
|
|
||||||
cleanup
|
cleanup
|
||||||
|
|
||||||
|
|||||||
28
test/fast/Unit tests/nvm_print_npm_version
Executable file
28
test/fast/Unit tests/nvm_print_npm_version
Executable file
@@ -0,0 +1,28 @@
|
|||||||
|
#!/bin/sh
|
||||||
|
|
||||||
|
cleanup () {
|
||||||
|
alias nvm_has='\nvm_has'
|
||||||
|
alias npm='\npm'
|
||||||
|
unset -f nvm_has npm
|
||||||
|
}
|
||||||
|
die () { echo $@ ; exit 1; }
|
||||||
|
|
||||||
|
. ../../../nvm.sh
|
||||||
|
|
||||||
|
nvm_has() { return 1; }
|
||||||
|
OUTPUT="$(nvm_print_npm_version)"
|
||||||
|
[ -z "$OUTPUT" ] || die "nvm_print_npm_version did not return empty when nvm_has returns 1, got '$OUTPUT'"
|
||||||
|
|
||||||
|
nvm_has() { return 0; }
|
||||||
|
npm() {
|
||||||
|
if [ "_$@" = "_--version" ]; then
|
||||||
|
echo "1.2.3"
|
||||||
|
else
|
||||||
|
echo "error"
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
OUTPUT="$(nvm_print_npm_version)"
|
||||||
|
EXPECTED_OUTPUT=" (npm v1.2.3)"
|
||||||
|
[ "_$OUTPUT" = "_$EXPECTED_OUTPUT" ] || die "nvm_print_npm_version did not provided '$EXPECTED_OUTPUT', got '$OUTPUT'"
|
||||||
|
|
||||||
|
cleanup
|
||||||
@@ -26,9 +26,18 @@ EXIT_CODE="$(nvm_remote_version iojs-foo >/dev/null 2>&1 ; echo $?)"
|
|||||||
|
|
||||||
|
|
||||||
nvm_ls_remote() {
|
nvm_ls_remote() {
|
||||||
|
if ! nvm_is_iojs_version "$1"; then
|
||||||
echo "test output"
|
echo "test output"
|
||||||
echo "more test output"
|
echo "more test output"
|
||||||
echo "pattern received: _$1_"
|
echo "pattern received: _$1_"
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
nvm_ls_remote_iojs() {
|
||||||
|
if [ -z "$1" ] || nvm_is_iojs_version "$1"; then
|
||||||
|
echo "test iojs output"
|
||||||
|
echo "more iojs test output"
|
||||||
|
echo "iojs pattern received: _$1_"
|
||||||
|
fi
|
||||||
}
|
}
|
||||||
OUTPUT="$(nvm_remote_version foo)"
|
OUTPUT="$(nvm_remote_version foo)"
|
||||||
EXIT_CODE="$(nvm_remote_version foo >/dev/null 2>&1 ; echo $?)"
|
EXIT_CODE="$(nvm_remote_version foo >/dev/null 2>&1 ; echo $?)"
|
||||||
@@ -36,17 +45,34 @@ EXIT_CODE="$(nvm_remote_version foo >/dev/null 2>&1 ; echo $?)"
|
|||||||
|| die "nvm_remote_version foo did not return last line only of nvm_ls_remote foo; got $OUTPUT"
|
|| die "nvm_remote_version foo did not return last line only of nvm_ls_remote foo; got $OUTPUT"
|
||||||
[ "_$EXIT_CODE" = "_0" ] || die "nvm_remote_version foo did not exit with 0, got $EXIT_CODE"
|
[ "_$EXIT_CODE" = "_0" ] || die "nvm_remote_version foo did not exit with 0, got $EXIT_CODE"
|
||||||
|
|
||||||
nvm_ls_remote_iojs() {
|
|
||||||
echo "test iojs output"
|
|
||||||
echo "more iojs test output"
|
|
||||||
echo "iojs pattern received: _$1_"
|
|
||||||
|
|
||||||
}
|
|
||||||
OUTPUT="$(nvm_remote_version iojs-foo)"
|
OUTPUT="$(nvm_remote_version iojs-foo)"
|
||||||
EXIT_CODE="$(nvm_remote_version iojs-foo >/dev/null 2>&1 ; echo $?)"
|
EXIT_CODE="$(nvm_remote_version iojs-foo >/dev/null 2>&1 ; echo $?)"
|
||||||
[ "_$OUTPUT" = "_iojs pattern received: _iojs-foo_" ] \
|
[ "_$OUTPUT" = "_iojs pattern received: _iojs-foo_" ] \
|
||||||
|| die "nvm_remote_version iojs-foo did not return last line only of nvm_ls_remote_iojs foo; got $OUTPUT"
|
|| die "nvm_remote_version iojs-foo did not return last line only of nvm_ls_remote_iojs foo; got $OUTPUT"
|
||||||
[ "_$EXIT_CODE" = "_0" ] || die "nvm_remote_version iojs-foo did not exit with 0, got $EXIT_CODE"
|
[ "_$EXIT_CODE" = "_0" ] || die "nvm_remote_version iojs-foo did not exit with 0, got $EXIT_CODE"
|
||||||
|
|
||||||
cleanup
|
OUTPUT="$(nvm_remote_version iojs)"
|
||||||
|
EXIT_CODE="$(nvm_remote_version iojs >/dev/null 2>&1 ; echo $?)"
|
||||||
|
[ "_$OUTPUT" = "_iojs pattern received: __" ] \
|
||||||
|
|| die "nvm_remote_version iojs did not return last line only of nvm_ls_remote_iojs; got $OUTPUT"
|
||||||
|
[ "_$EXIT_CODE" = "_0" ] || die "nvm_remote_version iojs did not exit with 0, got $EXIT_CODE"
|
||||||
|
|
||||||
|
OUTPUT="$(nvm_remote_version stable)"
|
||||||
|
EXIT_CODE="$(nvm_remote_version stable >/dev/null 2>&1 ; echo $?)"
|
||||||
|
[ "_$OUTPUT" = "_$(nvm_ls_remote stable)" ] \
|
||||||
|
|| die "nvm_remote_version stable did not return contents of nvm_ls_remote stable; got $OUTPUT"
|
||||||
|
[ "_$EXIT_CODE" = "_0" ] || die "nvm_remote_version stable did not exit with 0, got $EXIT_CODE"
|
||||||
|
|
||||||
|
OUTPUT="$(nvm_remote_version unstable)"
|
||||||
|
EXIT_CODE="$(nvm_remote_version unstable >/dev/null 2>&1 ; echo $?)"
|
||||||
|
[ "_$OUTPUT" = "_$(nvm_ls_remote unstable)" ] \
|
||||||
|
|| die "nvm_remote_version unstable did not return contents of nvm_ls_remote unstable; got $OUTPUT"
|
||||||
|
[ "_$EXIT_CODE" = "_0" ] || die "nvm_remote_version unstable did not exit with 0, got $EXIT_CODE"
|
||||||
|
|
||||||
|
OUTPUT="$(nvm_remote_version node)"
|
||||||
|
EXIT_CODE="$(nvm_remote_version node >/dev/null 2>&1 ; echo $?)"
|
||||||
|
[ "_$OUTPUT" = "_$(nvm_ls_remote node)" ] \
|
||||||
|
|| die "nvm_remote_version node did not return contents of nvm_ls_remote node; got $OUTPUT"
|
||||||
|
[ "_$EXIT_CODE" = "_0" ] || die "nvm_remote_version node did not exit with 0, got $EXIT_CODE"
|
||||||
|
|
||||||
|
cleanup
|
||||||
|
|||||||
@@ -4,16 +4,18 @@ die () { echo $@ ; exit 1; }
|
|||||||
|
|
||||||
. ../../../nvm.sh
|
. ../../../nvm.sh
|
||||||
|
|
||||||
EXPECTED_MSG="Only implicit aliases 'stable' and 'unstable' are supported."
|
EXPECTED_MSG="Only implicit aliases 'stable', 'unstable', 'iojs', and 'node' are supported."
|
||||||
[ "_$(nvm_validate_implicit_alias 2>&1)" = "_$EXPECTED_MSG" ] \
|
[ "_$(nvm_validate_implicit_alias 2>&1)" = "_$EXPECTED_MSG" ] \
|
||||||
|| die "nvm_validate_implicit_alias did not require stable|unstable"
|
|| die "nvm_validate_implicit_alias did not require stable|unstable|iojs|node"
|
||||||
[ "_$(nvm_validate_implicit_alias foo 2>&1)" = "_$EXPECTED_MSG" ] \
|
[ "_$(nvm_validate_implicit_alias foo 2>&1)" = "_$EXPECTED_MSG" ] \
|
||||||
|| die "nvm_validate_implicit_alias did not require stable|unstable"
|
|| die "nvm_validate_implicit_alias did not require stable|unstable|iojs|node"
|
||||||
|
|
||||||
EXIT_CODE="$(nvm_validate_implicit_alias >/dev/null 2>&1 ; echo $?)"
|
EXIT_CODE="$(nvm_validate_implicit_alias >/dev/null 2>&1 ; echo $?)"
|
||||||
[ "_$EXIT_CODE" = "_1" ] \
|
[ "_$EXIT_CODE" = "_1" ] \
|
||||||
|| die "nvm_validate_implicit_alias without stable|unstable had wrong exit code: expected 1, got $EXIT_CODE"
|
|| die "nvm_validate_implicit_alias without stable|unstable|iojs|node 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 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"
|
nvm_validate_implicit_alias unstable || die "nvm_validate_implicit_alias unstable did not exit 0"
|
||||||
|
nvm_validate_implicit_alias node || die "nvm_validate_implicit_alias node did not exit 0"
|
||||||
|
nvm_validate_implicit_alias iojs || die "nvm_validate_implicit_alias iojs did not exit 0"
|
||||||
|
|
||||||
|
|||||||
54
test/install_script/nvm_check_global_modules
Executable file
54
test/install_script/nvm_check_global_modules
Executable file
@@ -0,0 +1,54 @@
|
|||||||
|
#!/bin/sh
|
||||||
|
|
||||||
|
cleanup () {
|
||||||
|
rm -rf "$npm_config_prefix/lib" >/dev/null 2>&1
|
||||||
|
unset npm_config_prefix
|
||||||
|
|
||||||
|
rm -f npm
|
||||||
|
PATH="$ORIGINAL_PATH"
|
||||||
|
|
||||||
|
unset -f setup cleanup die
|
||||||
|
unset message ORIGINAL_PATH
|
||||||
|
}
|
||||||
|
die () { echo $@ ; cleanup ; exit 1; }
|
||||||
|
|
||||||
|
NVM_ENV=testing . ../../install.sh
|
||||||
|
|
||||||
|
setup () {
|
||||||
|
ORIGINAL_PATH="$PATH"
|
||||||
|
|
||||||
|
npm_config_prefix="$(pwd)"
|
||||||
|
export npm_config_prefix
|
||||||
|
mkdir -p "$npm_config_prefix/lib"
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
setup
|
||||||
|
|
||||||
|
npm install -g nop >/dev/null || die 'nvm_check_global_modules cannot be tested because `npm` cannot install the `nop` package'
|
||||||
|
message=$(nvm_check_global_modules)
|
||||||
|
[ ! -z "$message" ] || die "nvm_check_global_modules should have printed a notice when npm had global modules installed"
|
||||||
|
|
||||||
|
npm uninstall -g nop >/dev/null
|
||||||
|
message=$(nvm_check_global_modules)
|
||||||
|
[ -z "$message" ] || die "nvm_check_global_modules should not have printed a notice when npm had no global modules installed"
|
||||||
|
|
||||||
|
# Faking an installation of npm
|
||||||
|
mkdir -p "$npm_config_prefix/lib/node_modules/npm"
|
||||||
|
cat <<'JSON' >"$npm_config_prefix/lib/node_modules/npm/package.json"
|
||||||
|
{ "name": "npm", "version": "0.0.1fake" }
|
||||||
|
JSON
|
||||||
|
|
||||||
|
message=$(nvm_check_global_modules)
|
||||||
|
[ -z "$message" ] || die "nvm_check_global_modules should have not printed a notice when npm had only itself installed as a global module"
|
||||||
|
|
||||||
|
# Faking the absence of npm
|
||||||
|
PATH=".:$PATH"
|
||||||
|
touch npm
|
||||||
|
chmod +x npm
|
||||||
|
|
||||||
|
message=$(nvm_check_global_modules)
|
||||||
|
[ -z "$message" ] || die "nvm_check_global_modules should have not printed a notice when npm was unavailable"
|
||||||
|
|
||||||
|
|
||||||
|
cleanup
|
||||||
@@ -15,7 +15,7 @@ safe_type() {
|
|||||||
safe_type nvm_reset || die 'nvm_reset is not available'
|
safe_type nvm_reset || die 'nvm_reset is not available'
|
||||||
|
|
||||||
# Apply nvm_reset
|
# Apply nvm_reset
|
||||||
nvm_reset
|
nvm_reset || die 'nvm_reset failed'
|
||||||
|
|
||||||
# The names should be unset
|
# The names should be unset
|
||||||
! safe_type nvm_do_install || die 'nvm_do_install is still available'
|
! safe_type nvm_do_install || die 'nvm_do_install is still available'
|
||||||
|
|||||||
@@ -5,17 +5,23 @@ die () { echo "$@" ; exit 1; }
|
|||||||
. ../../../nvm.sh
|
. ../../../nvm.sh
|
||||||
|
|
||||||
nvm use 0.10.28
|
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 recursive-blame uglify-js yo"
|
EXPECTED_PACKAGES="autoprefixer bower david eslint grunt-cli grunth-cli http-server jshint marked node-gyp npmlist recursive-blame test-npmlink uglify-js yo"
|
||||||
|
|
||||||
echo "$EXPECTED_PACKAGES" | xargs npm install -g --quiet
|
echo "$EXPECTED_PACKAGES" | xargs npm install -g --quiet
|
||||||
|
|
||||||
|
get_packages() {
|
||||||
|
npm list -g --depth=0 | \sed -e '1 d' -e 's/^.* \(.*\)@.*/\1/' -e '/^npm$/ d' | xargs
|
||||||
|
}
|
||||||
|
|
||||||
nvm use 0.10.29
|
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)
|
ORIGINAL_PACKAGES=$(get_packages)
|
||||||
|
|
||||||
nvm reinstall-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=$(get_packages)
|
||||||
|
|
||||||
[ "$FINAL_PACKAGES" = "$EXPECTED_PACKAGES" ] || die "final packages ($FINAL_PACKAGES) did not match expected packages ($EXPECTED_PACKAGES)"
|
[ "$FINAL_PACKAGES" = "$EXPECTED_PACKAGES" ] || die "final packages ($FINAL_PACKAGES) did not match expected packages ($EXPECTED_PACKAGES)"
|
||||||
[ "$ORIGINAL_PACKAGES" != "$FINAL_PACKAGES" ] || die "original packages matched final packages ($ORIGINAL_PACKAGES)"
|
[ "$ORIGINAL_PACKAGES" != "$FINAL_PACKAGES" ] || die "original packages matched final packages ($ORIGINAL_PACKAGES)"
|
||||||
|
|
||||||
|
[ $(test-npmlink) = 'ok' ] || die "failed to run test-npmlink"
|
||||||
|
|||||||
2
test/slow/nvm reinstall-packages/test-npmlink/index.js
Executable file
2
test/slow/nvm reinstall-packages/test-npmlink/index.js
Executable file
@@ -0,0 +1,2 @@
|
|||||||
|
#!/usr/bin/env node
|
||||||
|
console.log('ok')
|
||||||
10
test/slow/nvm reinstall-packages/test-npmlink/package.json
Normal file
10
test/slow/nvm reinstall-packages/test-npmlink/package.json
Normal file
@@ -0,0 +1,10 @@
|
|||||||
|
{
|
||||||
|
"name": "test-npmlink",
|
||||||
|
"version": "0.0.1",
|
||||||
|
"description": "Stub package for testing npm link",
|
||||||
|
"bin": {
|
||||||
|
"test-npmlink": "index.js"
|
||||||
|
},
|
||||||
|
"author": "hax",
|
||||||
|
"license": "ISC"
|
||||||
|
}
|
||||||
9
test/slow/nvm run/Running "nvm run --harmony --version" should work
Executable file
9
test/slow/nvm run/Running "nvm run --harmony --version" should work
Executable file
@@ -0,0 +1,9 @@
|
|||||||
|
#!/bin/sh
|
||||||
|
|
||||||
|
die () { echo $@ ; exit 1; }
|
||||||
|
|
||||||
|
. ../../../nvm.sh
|
||||||
|
|
||||||
|
nvm run 0.10.7 --harmony --version
|
||||||
|
[ "_$(nvm run 0.10.7 --harmony --version 2>/dev/null | tail -1)" = "_v0.10.7" ] || die "\`nvm run --harmony --version\` failed to run with the correct version"
|
||||||
|
|
||||||
@@ -0,0 +1,9 @@
|
|||||||
|
#!/bin/sh
|
||||||
|
|
||||||
|
|
||||||
|
die () { echo $@ ; exit 1; }
|
||||||
|
|
||||||
|
. ../../../nvm.sh
|
||||||
|
|
||||||
|
[ "$(nvm run 0.2 --version 2>&1)" = "v0.2 is not installed yet" ] || die "\`nvm run\` with an uninstalled node version failed to error out correctly"
|
||||||
|
[ "$(nvm run iojs-0.2 --version 2>&1)" = "iojs-v0.2 is not installed yet" ] || die "\`nvm run\` with an uninstalled iojs version failed to error out correctly"
|
||||||
@@ -5,5 +5,5 @@ die () { echo $@ ; exit 1; }
|
|||||||
|
|
||||||
. ../../../nvm.sh
|
. ../../../nvm.sh
|
||||||
|
|
||||||
[ "$(nvm run 0.10.7 --version | tail -1)" = "v0.10.7" ] || die "`nvm run` failed to run with the correct version"
|
[ "$(nvm run 0.10.7 --version | tail -1)" = "v0.10.7" ] || die "\`nvm run\` failed to run with the correct version"
|
||||||
|
|
||||||
|
|||||||
14
test/slow/nvm use/Running "nvm use v1.0.0" uses iojs-v1.0.0 iojs version
Executable file
14
test/slow/nvm use/Running "nvm use v1.0.0" uses iojs-v1.0.0 iojs version
Executable file
@@ -0,0 +1,14 @@
|
|||||||
|
#!/bin/sh
|
||||||
|
|
||||||
|
die () { echo $@ ; exit 1; }
|
||||||
|
|
||||||
|
. ../../../nvm.sh
|
||||||
|
|
||||||
|
nvm deactivate 2>&1 >/dev/null || die 'deactivate failed'
|
||||||
|
|
||||||
|
nvm use 'v1.0.0' || die 'nvm use v1.0.0 failed'
|
||||||
|
OUTPUT="$(nvm current)"
|
||||||
|
EXPECTED_OUTPUT="$(nvm_version v1.0.0)"
|
||||||
|
|
||||||
|
[ "_$OUTPUT" = "_$EXPECTED_OUTPUT" ] \
|
||||||
|
|| die "'nvm use v1.0.0' + 'nvm current' did not output '$EXPECTED_OUTPUT'; got '$OUTPUT'"
|
||||||
@@ -10,12 +10,12 @@ cleanup() {
|
|||||||
|
|
||||||
EXPECTED_VERSION="v12.3.456"
|
EXPECTED_VERSION="v12.3.456"
|
||||||
URL="https://github.com/creationix/nvm/releases/tag/$EXPECTED_VERSION"
|
URL="https://github.com/creationix/nvm/releases/tag/$EXPECTED_VERSION"
|
||||||
EXPECTED_CURL_ARGS="-w %{url_effective}\n -L -s -S http://latest.nvm.sh -o /dev/null"
|
EXPECTED_CURL_ARGS="-q -w %{url_effective}\n -L -s -S http://latest.nvm.sh -o /dev/null"
|
||||||
EXPECTED_WGET_ARGS="http://latest.nvm.sh --server-response -O /dev/null"
|
EXPECTED_WGET_ARGS="http://latest.nvm.sh --server-response -O /dev/null"
|
||||||
|
|
||||||
curl() {
|
curl() {
|
||||||
if [ "_$*" != "_$EXPECTED_CURL_ARGS" ]; then
|
if [ "_$*" != "_$EXPECTED_CURL_ARGS" ]; then
|
||||||
echo 2>& "expected args ($EXPECTED_CURL_ARGS), got ($*)"
|
echo >&2 "expected args ($EXPECTED_CURL_ARGS), got ($*)"
|
||||||
return 1
|
return 1
|
||||||
else
|
else
|
||||||
echo $URL
|
echo $URL
|
||||||
@@ -23,7 +23,7 @@ curl() {
|
|||||||
}
|
}
|
||||||
wget() {
|
wget() {
|
||||||
if [ "_$*" != "_$EXPECTED_WGET_ARGS" ]; then
|
if [ "_$*" != "_$EXPECTED_WGET_ARGS" ]; then
|
||||||
echo 2>& "expected args ($EXPECTED_WGET_ARGS), got ($*)"
|
echo >&2 "expected args ($EXPECTED_WGET_ARGS), got ($*)"
|
||||||
return 1
|
return 1
|
||||||
else
|
else
|
||||||
local WGET_CONTENTS
|
local WGET_CONTENTS
|
||||||
@@ -100,7 +100,7 @@ Saving to: ‘/dev/null’
|
|||||||
"
|
"
|
||||||
"$WGET_CONTENTS" | while read line
|
"$WGET_CONTENTS" | while read line
|
||||||
do
|
do
|
||||||
2>& echo "$line"
|
>&2 echo "$line"
|
||||||
done
|
done
|
||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user