mirror of
https://github.com/nvm-sh/nvm.git
synced 2025-09-13 18:19:08 +00:00
Compare commits
2 Commits
Author | SHA1 | Date | |
---|---|---|---|
![]() |
00f3ba0831 | ||
![]() |
0f1efc825e |
1
.gitattributes
vendored
1
.gitattributes
vendored
@@ -1 +0,0 @@
|
||||
*.sh eol=lf
|
@@ -10,7 +10,11 @@ install:
|
||||
script:
|
||||
- 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
|
||||
|
@@ -4,22 +4,23 @@
|
||||
|
||||
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 neither supported nor developed by us:
|
||||
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](https://github.com/hakobera/nvmw)
|
||||
- [nvm-windows](https://github.com/coreybutler/nvm-windows)
|
||||
|
||||
Note: `nvm` does not support [Fish] either (see [#303](https://github.com/creationix/nvm/issues/303)). An alternative exists, which is neither supported nor developed by us:
|
||||
- [bass](https://github.com/edc/bass) allows to use utilities written for Bash in fish shell
|
||||
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
|
||||
|
||||
To install you could use the [install script][2] using cURL:
|
||||
|
||||
curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.26.1/install.sh | bash
|
||||
curl https://raw.githubusercontent.com/creationix/nvm/v0.24.2/install.sh | bash
|
||||
|
||||
or Wget:
|
||||
|
||||
wget -qO- https://raw.githubusercontent.com/creationix/nvm/v0.26.1/install.sh | bash
|
||||
wget -qO- https://raw.githubusercontent.com/creationix/nvm/v0.24.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>
|
||||
|
||||
@@ -38,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:
|
||||
|
||||
. ~/.nvm/nvm.sh
|
||||
source ~/.nvm/nvm.sh
|
||||
|
||||
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.
|
||||
@@ -75,27 +76,10 @@ In place of a version pointer like "0.10", you can use the special default alias
|
||||
nvm use stable
|
||||
nvm run unstable --version
|
||||
|
||||
If you want to install a new version of Node.js and migrate npm packages from a previous version:
|
||||
|
||||
nvm install node --reinstall-packages-from=node
|
||||
|
||||
This will first use "nvm version node" to identify the current version you're migrating packages from. Then it resolves the new version to install from the remote server and installs it. Lastly, it runs "nvm reinstall-packages" to reinstall the npm packages from your prior version of Node to the new one.
|
||||
|
||||
You can also install and migrate npm packages from specific versions of Node like this:
|
||||
|
||||
nvm install v0.10.40 --reinstall-packages-from=0.10.39
|
||||
nvm install v0.12.7 --reinstall-packages-from=0.12.6
|
||||
|
||||
If you want to install [io.js](https://github.com/iojs/io.js/):
|
||||
|
||||
nvm install iojs
|
||||
|
||||
If you want to install a new version of io.js and migrate npm packages from a previous version:
|
||||
|
||||
nvm install iojs --reinstall-packages-from=iojs
|
||||
|
||||
The same guidelines mentioned for migrating npm packages in Node.js are applicable to io.js.
|
||||
|
||||
If you want to use the system-installed version of node, you can use the special default alias "system":
|
||||
|
||||
nvm use system
|
||||
@@ -203,20 +187,6 @@ nvm uninstall
|
||||
$ nvm uninstall [tab][tab]
|
||||
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
|
||||
|
||||
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:
|
||||
@@ -236,7 +206,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.26.1/install.sh
|
||||
[2]: https://github.com/creationix/nvm/blob/v0.24.2/install.sh
|
||||
[3]: https://travis-ci.org/creationix/nvm
|
||||
[Urchin]: https://github.com/scraperwiki/urchin
|
||||
[Fish]: http://fishshell.com
|
||||
|
@@ -57,7 +57,7 @@ __nvm_aliases ()
|
||||
declare aliases
|
||||
aliases=""
|
||||
if [ -d $NVM_DIR/alias ]; then
|
||||
aliases="`cd $NVM_DIR/alias && command ls`"
|
||||
aliases="`cd $NVM_DIR/alias && ls`"
|
||||
fi
|
||||
echo "${aliases}"
|
||||
}
|
||||
|
60
install.sh
60
install.sh
@@ -2,8 +2,6 @@
|
||||
|
||||
set -e
|
||||
|
||||
{ # this ensures the entire script is downloaded #
|
||||
|
||||
nvm_has() {
|
||||
type "$1" > /dev/null 2>&1
|
||||
}
|
||||
@@ -13,7 +11,7 @@ if [ -z "$NVM_DIR" ]; then
|
||||
fi
|
||||
|
||||
nvm_latest_version() {
|
||||
echo "v0.26.1"
|
||||
echo "v0.24.2"
|
||||
}
|
||||
|
||||
#
|
||||
@@ -44,7 +42,7 @@ nvm_source() {
|
||||
|
||||
nvm_download() {
|
||||
if nvm_has "curl"; then
|
||||
curl -q $*
|
||||
curl $*
|
||||
elif nvm_has "wget"; then
|
||||
# Emulate curl with wget
|
||||
ARGS=$(echo "$*" | command sed -e 's/--progress-bar /--progress=bar /' \
|
||||
@@ -73,12 +71,7 @@ install_nvm_from_git() {
|
||||
fi
|
||||
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
|
||||
cd "$NVM_DIR" && command git branch --quiet -D master >/dev/null 2>&1
|
||||
fi
|
||||
return
|
||||
}
|
||||
@@ -117,38 +110,16 @@ install_nvm_as_script() {
|
||||
# Otherwise, an empty string is returned
|
||||
#
|
||||
nvm_detect_profile() {
|
||||
|
||||
local DETECTED_PROFILE
|
||||
DETECTED_PROFILE=''
|
||||
local SHELLTYPE
|
||||
SHELLTYPE="$(basename /$SHELL)"
|
||||
|
||||
if [ $SHELLTYPE = "bash" ]; then
|
||||
if [ -f "$HOME/.bashrc" ]; then
|
||||
DETECTED_PROFILE="$HOME/.bashrc"
|
||||
elif [ -f "$HOME/.bash_profile" ]; then
|
||||
DETECTED_PROFILE="$HOME/.bash_profile"
|
||||
fi
|
||||
elif [ $SHELLTYPE = "zsh" ]; then
|
||||
DETECTED_PROFILE="$HOME/.zshrc"
|
||||
fi
|
||||
|
||||
if [ -z $DETECTED_PROFILE ]; then
|
||||
if [ -f "$PROFILE" ]; then
|
||||
DETECTED_PROFILE="$PROFILE"
|
||||
elif [ -f "$HOME/.profile" ]; then
|
||||
DETECTED_PROFILE="$HOME/.profile"
|
||||
elif [ -f "$HOME/.bashrc" ]; then
|
||||
DETECTED_PROFILE="$HOME/.bashrc"
|
||||
elif [ -f "$HOME/.bash_profile" ]; then
|
||||
DETECTED_PROFILE="$HOME/.bash_profile"
|
||||
elif [ -f "$HOME/.zshrc" ]; then
|
||||
DETECTED_PROFILE="$HOME/.zshrc"
|
||||
fi
|
||||
fi
|
||||
|
||||
if [ ! -z $DETECTED_PROFILE ]; then
|
||||
echo "$DETECTED_PROFILE"
|
||||
if [ -f "$PROFILE" ]; then
|
||||
echo "$PROFILE"
|
||||
elif [ -f "$HOME/.bashrc" ]; then
|
||||
echo "$HOME/.bashrc"
|
||||
elif [ -f "$HOME/.bash_profile" ]; then
|
||||
echo "$HOME/.bash_profile"
|
||||
elif [ -f "$HOME/.zshrc" ]; then
|
||||
echo "$HOME/.zshrc"
|
||||
elif [ -f "$HOME/.profile" ]; then
|
||||
echo "$HOME/.profile"
|
||||
fi
|
||||
}
|
||||
|
||||
@@ -250,8 +221,7 @@ nvm_do_install() {
|
||||
|
||||
nvm_check_global_modules
|
||||
|
||||
. $NVM_DIR/nvm.sh
|
||||
echo "=> You can now start using nvm"
|
||||
echo "=> Close and reopen your terminal to start using nvm"
|
||||
nvm_reset
|
||||
}
|
||||
|
||||
@@ -266,5 +236,3 @@ nvm_reset() {
|
||||
}
|
||||
|
||||
[ "_$NVM_ENV" = "_testing" ] || nvm_do_install
|
||||
|
||||
} # this ensures the entire script is downloaded #
|
||||
|
477
nvm.sh
477
nvm.sh
@@ -6,8 +6,6 @@
|
||||
# Implemented by Tim Caswell <tim@creationix.com>
|
||||
# with much bash help from Matthew Ranney
|
||||
|
||||
{ # this ensures the entire script is downloaded #
|
||||
|
||||
NVM_SCRIPT_SOURCE="$_"
|
||||
|
||||
nvm_has() {
|
||||
@@ -22,9 +20,9 @@ nvm_is_alias() {
|
||||
nvm_get_latest() {
|
||||
local NVM_LATEST_URL
|
||||
if nvm_has "curl"; then
|
||||
NVM_LATEST_URL="$(curl -q -w "%{url_effective}\n" -L -s -S http://latest.nvm.sh -o /dev/null)"
|
||||
NVM_LATEST_URL="$(curl -w "%{url_effective}\n" -L -s -S http://latest.nvm.sh -o /dev/null)"
|
||||
elif nvm_has "wget"; then
|
||||
NVM_LATEST_URL="$(wget http://latest.nvm.sh --server-response -O /dev/null 2>&1 | command awk '/^ Location: /{DEST=$2} END{ print DEST }')"
|
||||
NVM_LATEST_URL="$(wget http://latest.nvm.sh --server-response -O /dev/null 2>&1 | awk '/^ Location: /{DEST=$2} END{ print DEST }')"
|
||||
else
|
||||
>&2 echo 'nvm needs curl or wget to proceed.'
|
||||
return 1
|
||||
@@ -33,13 +31,13 @@ nvm_get_latest() {
|
||||
>&2 echo "http://latest.nvm.sh did not redirect to the latest release on Github"
|
||||
return 2
|
||||
else
|
||||
echo "$NVM_LATEST_URL" | command awk -F'/' '{print $NF}'
|
||||
echo "$NVM_LATEST_URL" | awk -F'/' '{print $NF}'
|
||||
fi
|
||||
}
|
||||
|
||||
nvm_download() {
|
||||
if nvm_has "curl"; then
|
||||
curl -q $*
|
||||
curl $*
|
||||
elif nvm_has "wget"; then
|
||||
# Emulate curl with wget
|
||||
ARGS=$(echo "$*" | command sed -e 's/--progress-bar /--progress=bar /' \
|
||||
@@ -60,12 +58,6 @@ nvm_has_system_iojs() {
|
||||
[ "$(nvm deactivate >/dev/null 2>&1 && command -v iojs)" != '' ]
|
||||
}
|
||||
|
||||
nvm_print_npm_version() {
|
||||
if nvm_has "npm"; then
|
||||
echo " (npm v$(npm --version 2>/dev/null))"
|
||||
fi
|
||||
}
|
||||
|
||||
# Make zsh glob matching behave same as bash
|
||||
# This fixes the "zsh: no matches found" errors
|
||||
if nvm_has "unsetopt"; then
|
||||
@@ -91,6 +83,9 @@ fi
|
||||
if [ -z "$NVM_IOJS_ORG_MIRROR" ]; then
|
||||
export NVM_IOJS_ORG_MIRROR="https://iojs.org/dist"
|
||||
fi
|
||||
if [ -z "$NVM_IOJS_ORG_VERSION_LISTING" ]; then
|
||||
export NVM_IOJS_ORG_VERSION_LISTING="$NVM_IOJS_ORG_MIRROR/index.tab"
|
||||
fi
|
||||
|
||||
nvm_tree_contains_path() {
|
||||
local tree
|
||||
@@ -198,14 +193,10 @@ nvm_ensure_version_installed() {
|
||||
local PROVIDED_VERSION
|
||||
PROVIDED_VERSION="$1"
|
||||
local LOCAL_VERSION
|
||||
local EXIT_CODE
|
||||
LOCAL_VERSION="$(nvm_version "$PROVIDED_VERSION")"
|
||||
EXIT_CODE="$?"
|
||||
local NVM_VERSION_DIR
|
||||
if [ "_$EXIT_CODE" = "_0" ]; then
|
||||
NVM_VERSION_DIR="$(nvm_version_path "$LOCAL_VERSION")"
|
||||
fi
|
||||
if [ "_$EXIT_CODE" != "_0" ] || [ ! -d "$NVM_VERSION_DIR" ]; then
|
||||
NVM_VERSION_DIR="$(nvm_version_path "$LOCAL_VERSION")"
|
||||
if [ ! -d "$NVM_VERSION_DIR" ]; then
|
||||
VERSION="$(nvm_resolve_alias "$PROVIDED_VERSION")"
|
||||
if [ $? -eq 0 ]; then
|
||||
echo "N/A: version \"$PROVIDED_VERSION -> $VERSION\" is not yet installed" >&2
|
||||
@@ -238,7 +229,7 @@ nvm_version() {
|
||||
PATTERN="stable"
|
||||
;;
|
||||
esac
|
||||
VERSION="$(nvm_ls "$PATTERN" | command tail -n1)"
|
||||
VERSION="$(nvm_ls "$PATTERN" | tail -n1)"
|
||||
if [ -z "$VERSION" ] || [ "_$VERSION" = "_N/A" ]; then
|
||||
echo "N/A"
|
||||
return 3;
|
||||
@@ -254,14 +245,14 @@ nvm_remote_version() {
|
||||
if nvm_validate_implicit_alias "$PATTERN" 2> /dev/null ; then
|
||||
case "_$PATTERN" in
|
||||
"_$(nvm_iojs_prefix)")
|
||||
VERSION="$(nvm_ls_remote_iojs | command tail -n1)"
|
||||
VERSION="$(nvm_ls_remote_iojs | tail -n1)"
|
||||
;;
|
||||
*)
|
||||
VERSION="$(nvm_ls_remote "$PATTERN")"
|
||||
;;
|
||||
esac
|
||||
else
|
||||
VERSION="$(nvm_remote_versions "$PATTERN" | command tail -n1)"
|
||||
VERSION="$(nvm_remote_versions "$PATTERN" | tail -n1)"
|
||||
fi
|
||||
echo "$VERSION"
|
||||
if [ "_$VERSION" = '_N/A' ]; then
|
||||
@@ -304,8 +295,7 @@ nvm_is_valid_version() {
|
||||
return 0
|
||||
fi
|
||||
case "$1" in
|
||||
"$(nvm_iojs_prefix)" | \
|
||||
"$(nvm_node_prefix)")
|
||||
"$(nvm_iojs_prefix)" | "$(nvm_node_prefix)")
|
||||
return 0
|
||||
;;
|
||||
*)
|
||||
@@ -317,7 +307,7 @@ nvm_is_valid_version() {
|
||||
}
|
||||
|
||||
nvm_normalize_version() {
|
||||
echo "${1#v}" | command awk -F. '{ printf("%d%06d%06d\n", $1,$2,$3); }'
|
||||
echo "${1#v*}" | command awk -F. '{ printf("%d%06d%06d\n", $1,$2,$3); }'
|
||||
}
|
||||
|
||||
nvm_ensure_version_prefix() {
|
||||
@@ -334,7 +324,7 @@ nvm_format_version() {
|
||||
local VERSION
|
||||
VERSION="$(nvm_ensure_version_prefix "$1")"
|
||||
if [ "_$(nvm_num_version_groups "$VERSION")" != "_3" ]; then
|
||||
nvm_format_version "${VERSION%.}.0"
|
||||
nvm_format_version "${VERSION%*\.}.0"
|
||||
else
|
||||
echo "$VERSION"
|
||||
fi
|
||||
@@ -343,12 +333,12 @@ nvm_format_version() {
|
||||
nvm_num_version_groups() {
|
||||
local VERSION
|
||||
VERSION="$1"
|
||||
VERSION="${VERSION#v}"
|
||||
VERSION="${VERSION%.}"
|
||||
if [ -z "$VERSION" ]; then
|
||||
echo "0"
|
||||
return
|
||||
fi
|
||||
VERSION="${VERSION#v*}"
|
||||
VERSION="${VERSION%\.}"
|
||||
local NVM_NUM_DOTS
|
||||
NVM_NUM_DOTS=$(echo "$VERSION" | command sed -e 's/[^\.]//g')
|
||||
local NVM_NUM_GROUPS
|
||||
@@ -441,7 +431,7 @@ nvm_resolve_alias() {
|
||||
fi
|
||||
|
||||
if [ -n "$ALIAS_TEMP" ] \
|
||||
&& command printf "$SEEN_ALIASES" | command grep -e "^$ALIAS_TEMP$" > /dev/null; then
|
||||
&& printf "$SEEN_ALIASES" | command grep -e "^$ALIAS_TEMP$" > /dev/null; then
|
||||
ALIAS="∞"
|
||||
break
|
||||
fi
|
||||
@@ -520,7 +510,7 @@ nvm_strip_iojs_prefix() {
|
||||
if [ "_$1" = "_$NVM_IOJS_PREFIX" ]; then
|
||||
echo
|
||||
else
|
||||
echo "${1#"$NVM_IOJS_PREFIX"-}"
|
||||
echo "${1#"$NVM_IOJS_PREFIX"-*}"
|
||||
fi
|
||||
}
|
||||
|
||||
@@ -539,7 +529,7 @@ nvm_ls() {
|
||||
local NVM_NODE_PREFIX
|
||||
NVM_NODE_PREFIX="$(nvm_node_prefix)"
|
||||
local NVM_VERSION_DIR_IOJS
|
||||
NVM_VERSION_DIR_IOJS="$(nvm_version_dir "$NVM_IOJS_PREFIX")"
|
||||
NVM_VERSION_DIR_IOJS="$(nvm_version_dir iojs)"
|
||||
local NVM_VERSION_DIR_NEW
|
||||
NVM_VERSION_DIR_NEW="$(nvm_version_dir new)"
|
||||
local NVM_VERSION_DIR_OLD
|
||||
@@ -575,7 +565,7 @@ nvm_ls() {
|
||||
local NUM_VERSION_GROUPS
|
||||
NUM_VERSION_GROUPS="$(nvm_num_version_groups "$PATTERN")"
|
||||
if [ "_$NUM_VERSION_GROUPS" = "_2" ] || [ "_$NUM_VERSION_GROUPS" = "_1" ]; then
|
||||
PATTERN="${PATTERN%.}."
|
||||
PATTERN="${PATTERN%*\.}."
|
||||
fi
|
||||
;;
|
||||
esac
|
||||
@@ -633,8 +623,7 @@ nvm_ls() {
|
||||
| command sort -s -t- -k1.1,1.1 \
|
||||
| command sed "
|
||||
s/^\($NVM_IOJS_PREFIX\)\./\1-/;
|
||||
s/^$NVM_NODE_PREFIX\.//" \
|
||||
)"
|
||||
s/^$NVM_NODE_PREFIX\.//")"
|
||||
fi
|
||||
|
||||
if [ $ZHS_HAS_SHWORDSPLIT_UNSET -eq 1 ] && nvm_has "unsetopt"; then
|
||||
@@ -665,7 +654,7 @@ nvm_ls_remote() {
|
||||
local GREP_OPTIONS
|
||||
GREP_OPTIONS=''
|
||||
if nvm_validate_implicit_alias "$PATTERN" 2> /dev/null ; then
|
||||
PATTERN="$(nvm_ls_remote "$(nvm_print_implicit_alias remote "$PATTERN")" | command tail -n1)"
|
||||
PATTERN="$(nvm_ls_remote "$(nvm_print_implicit_alias remote "$PATTERN")" | tail -n1)"
|
||||
elif [ -n "$PATTERN" ]; then
|
||||
PATTERN="$(nvm_ensure_version_prefix "$PATTERN")"
|
||||
else
|
||||
@@ -674,7 +663,7 @@ nvm_ls_remote() {
|
||||
VERSIONS=`nvm_download -L -s $NVM_NODEJS_ORG_MIRROR/ -o - \
|
||||
| \egrep -o 'v[0-9]+\.[0-9]+\.[0-9]+' \
|
||||
| command grep -w "${PATTERN}" \
|
||||
| command sort -t. -u -k 1.2,1n -k 2,2n -k 3,3n`
|
||||
| sort -t. -u -k 1.2,1n -k 2,2n -k 3,3n`
|
||||
if [ -z "$VERSIONS" ]; then
|
||||
echo "N/A"
|
||||
return 3
|
||||
@@ -683,32 +672,18 @@ nvm_ls_remote() {
|
||||
}
|
||||
|
||||
nvm_ls_remote_iojs() {
|
||||
nvm_ls_remote_iojs_org std "$NVM_IOJS_ORG_MIRROR" "$1"
|
||||
}
|
||||
|
||||
nvm_ls_remote_iojs_org() {
|
||||
local PREFIX
|
||||
if [ "_$1" = "_std" ]; then
|
||||
PREFIX="$(nvm_iojs_prefix)"
|
||||
else
|
||||
echo "unknown type of io.js release" >&2
|
||||
return 4
|
||||
fi
|
||||
local MIRROR
|
||||
MIRROR="$2"
|
||||
local PATTERN
|
||||
PATTERN="$3"
|
||||
PATTERN="$1"
|
||||
local VERSIONS
|
||||
if [ -n "$PATTERN" ]; then
|
||||
PATTERN="$(nvm_ensure_version_prefix $(nvm_strip_iojs_prefix "$PATTERN"))"
|
||||
else
|
||||
PATTERN=".*"
|
||||
fi
|
||||
VERSIONS="$(nvm_download -L -s "$MIRROR/index.tab" -o - \
|
||||
| command sed "
|
||||
1d;
|
||||
s/^/$PREFIX-/;
|
||||
s/[[:blank:]].*//" \
|
||||
VERSIONS="$(nvm_download -L -s $NVM_IOJS_ORG_VERSION_LISTING -o - \
|
||||
| command sed 1d \
|
||||
| command sed "s/^/$(nvm_iojs_prefix)-/" \
|
||||
| command cut -f1 \
|
||||
| command grep -w "$PATTERN" \
|
||||
| command sort)"
|
||||
if [ -z "$VERSIONS" ]; then
|
||||
@@ -757,7 +732,7 @@ nvm_print_versions() {
|
||||
else
|
||||
FORMAT='%15s'
|
||||
fi
|
||||
command printf "$FORMAT\n" $VERSION
|
||||
printf "$FORMAT\n" $VERSION
|
||||
done
|
||||
}
|
||||
|
||||
@@ -784,9 +759,7 @@ nvm_print_implicit_alias() {
|
||||
return 1
|
||||
fi
|
||||
|
||||
local NVM_IMPLICIT
|
||||
NVM_IMPLICIT="$2"
|
||||
if ! nvm_validate_implicit_alias "$NVM_IMPLICIT"; then
|
||||
if ! nvm_validate_implicit_alias "$2"; then
|
||||
return 2
|
||||
fi
|
||||
|
||||
@@ -797,14 +770,12 @@ nvm_print_implicit_alias() {
|
||||
local NVM_NODE_PREFIX
|
||||
NVM_NODE_PREFIX="$(nvm_node_prefix)"
|
||||
local NVM_COMMAND
|
||||
local NVM_ADD_PREFIX_COMMAND
|
||||
local LAST_TWO
|
||||
case "$NVM_IMPLICIT" in
|
||||
"$NVM_IOJS_PREFIX" | "$NVM_IOJS_RC_PREFIX")
|
||||
case "$2" in
|
||||
"$NVM_IOJS_PREFIX")
|
||||
NVM_COMMAND="nvm_ls_remote_iojs"
|
||||
NVM_ADD_PREFIX_COMMAND="nvm_add_iojs_prefix"
|
||||
if [ "_$1" = "_local" ]; then
|
||||
NVM_COMMAND="nvm_ls "$NVM_IMPLICIT""
|
||||
NVM_COMMAND="nvm_ls iojs"
|
||||
fi
|
||||
|
||||
ZHS_HAS_SHWORDSPLIT_UNSET=1
|
||||
@@ -814,7 +785,7 @@ nvm_print_implicit_alias() {
|
||||
fi
|
||||
|
||||
local NVM_IOJS_VERSION
|
||||
NVM_IOJS_VERSION="$($NVM_COMMAND | sed "s/^"$NVM_IMPLICIT"-//" | command grep -e '^v' | command cut -c2- | command cut -d . -f 1,2 | uniq | command tail -1)"
|
||||
NVM_IOJS_VERSION="$($NVM_COMMAND | sed "s/^"$NVM_IOJS_PREFIX"-//" | command grep -e '^v' | cut -c2- | cut -d . -f 1,2 | uniq | tail -1)"
|
||||
local EXIT_CODE
|
||||
EXIT_CODE="$?"
|
||||
|
||||
@@ -822,7 +793,7 @@ nvm_print_implicit_alias() {
|
||||
unsetopt shwordsplit
|
||||
fi
|
||||
|
||||
echo "$($NVM_ADD_PREFIX_COMMAND "$NVM_IOJS_VERSION")"
|
||||
echo "$(nvm_add_iojs_prefix "$NVM_IOJS_VERSION")"
|
||||
return $EXIT_CODE
|
||||
;;
|
||||
"$NVM_NODE_PREFIX")
|
||||
@@ -841,7 +812,7 @@ nvm_print_implicit_alias() {
|
||||
setopt shwordsplit
|
||||
fi
|
||||
|
||||
LAST_TWO=$($NVM_COMMAND | command grep -e '^v' | command cut -c2- | command cut -d . -f 1,2 | uniq)
|
||||
LAST_TWO=$($NVM_COMMAND | command grep -e '^v' | cut -c2- | cut -d . -f 1,2 | uniq)
|
||||
|
||||
if [ $ZHS_HAS_SHWORDSPLIT_UNSET -eq 1 ] && nvm_has "unsetopt"; then
|
||||
unsetopt shwordsplit
|
||||
@@ -852,7 +823,6 @@ nvm_print_implicit_alias() {
|
||||
local STABLE
|
||||
local UNSTABLE
|
||||
local MOD
|
||||
local NORMALIZED_VERSION
|
||||
|
||||
ZHS_HAS_SHWORDSPLIT_UNSET=1
|
||||
if nvm_has "setopt"; then
|
||||
@@ -860,16 +830,11 @@ nvm_print_implicit_alias() {
|
||||
setopt shwordsplit
|
||||
fi
|
||||
for MINOR in $LAST_TWO; do
|
||||
NORMALIZED_VERSION="$(nvm_normalize_version "$MINOR")"
|
||||
if [ "_0${NORMALIZED_VERSION#?}" != "_$NORMALIZED_VERSION" ]; then
|
||||
MOD=$(expr "$(nvm_normalize_version "$MINOR")" \/ 1000000 \% 2)
|
||||
if [ $MOD -eq 0 ]; then
|
||||
STABLE="$MINOR"
|
||||
else
|
||||
MOD=$(expr "$NORMALIZED_VERSION" \/ 1000000 \% 2)
|
||||
if [ $MOD -eq 0 ]; then
|
||||
STABLE="$MINOR"
|
||||
elif [ $MOD -eq 1 ]; then
|
||||
UNSTABLE="$MINOR"
|
||||
fi
|
||||
elif [ $MOD -eq 1 ]; then
|
||||
UNSTABLE="$MINOR"
|
||||
fi
|
||||
done
|
||||
if [ $ZHS_HAS_SHWORDSPLIT_UNSET -eq 1 ] && nvm_has "unsetopt"; then
|
||||
@@ -898,49 +863,21 @@ nvm_get_os() {
|
||||
|
||||
nvm_get_arch() {
|
||||
local NVM_UNAME
|
||||
NVM_UNAME="$(uname -m)"
|
||||
NVM_UNAME="$(uname -a)"
|
||||
local NVM_ARCH
|
||||
case "$NVM_UNAME" in
|
||||
x86_64) NVM_ARCH="x64" ;;
|
||||
i*86) NVM_ARCH="x86" ;;
|
||||
*) NVM_ARCH="$NVM_UNAME" ;;
|
||||
*x86_64*) NVM_ARCH=x64 ;;
|
||||
*i*86*) NVM_ARCH=x86 ;;
|
||||
*) NVM_ARCH="$(uname -m)" ;;
|
||||
esac
|
||||
echo "$NVM_ARCH"
|
||||
}
|
||||
|
||||
nvm_ensure_default_set() {
|
||||
local VERSION
|
||||
VERSION="$1"
|
||||
if [ -z "$VERSION" ]; then
|
||||
echo 'nvm_ensure_default_set: a version is required' >&2
|
||||
return 1
|
||||
fi
|
||||
if nvm_alias default >/dev/null 2>&1; then
|
||||
# default already set
|
||||
return 0
|
||||
fi
|
||||
local OUTPUT
|
||||
OUTPUT="$(nvm alias default "$VERSION")"
|
||||
local EXIT_CODE
|
||||
EXIT_CODE="$?"
|
||||
echo "Creating default alias: $OUTPUT"
|
||||
return $EXIT_CODE
|
||||
}
|
||||
|
||||
nvm_install_iojs_binary() {
|
||||
local NVM_IOJS_TYPE
|
||||
NVM_IOJS_TYPE="$1"
|
||||
local MIRROR
|
||||
if [ "_$NVM_IOJS_TYPE" = "_std" ]; then
|
||||
MIRROR="$NVM_IOJS_ORG_MIRROR"
|
||||
else
|
||||
echo "unknown type of io.js release" >&2
|
||||
return 4
|
||||
fi
|
||||
local PREFIXED_VERSION
|
||||
PREFIXED_VERSION="$2"
|
||||
PREFIXED_VERSION="$1"
|
||||
local REINSTALL_PACKAGES_FROM
|
||||
REINSTALL_PACKAGES_FROM="$3"
|
||||
REINSTALL_PACKAGES_FROM="$2"
|
||||
|
||||
if ! nvm_is_iojs_version "$PREFIXED_VERSION"; then
|
||||
echo 'nvm_install_iojs_binary requires an iojs-prefixed version.' >&2
|
||||
@@ -960,22 +897,15 @@ nvm_install_iojs_binary() {
|
||||
if [ -n "$NVM_OS" ]; then
|
||||
if nvm_binary_available "$VERSION"; then
|
||||
t="$VERSION-$NVM_OS-$(nvm_get_arch)"
|
||||
url="$MIRROR/$VERSION/$(nvm_iojs_prefix)-${t}.tar.gz"
|
||||
sum="$(nvm_download -L -s $MIRROR/$VERSION/SHASUMS256.txt -o - | command grep $(nvm_iojs_prefix)-${t}.tar.gz | command awk '{print $1}')"
|
||||
url="$NVM_IOJS_ORG_MIRROR/$VERSION/$(nvm_iojs_prefix)-${t}.tar.gz"
|
||||
sum="$(nvm_download -L -s $NVM_IOJS_ORG_MIRROR/$VERSION/SHASUMS256.txt -o - | command grep $(nvm_iojs_prefix)-${t}.tar.gz | command awk '{print $1}')"
|
||||
local tmpdir
|
||||
tmpdir="$NVM_DIR/bin/iojs-${t}"
|
||||
local tmptarball
|
||||
tmptarball="$tmpdir/iojs-${t}.tar.gz"
|
||||
local NVM_INSTALL_ERRORED
|
||||
command mkdir -p "$tmpdir" && \
|
||||
nvm_download -L -C - --progress-bar $url -o "$tmptarball" || \
|
||||
NVM_INSTALL_ERRORED=true
|
||||
if grep '404 Not Found' "$tmptarball" >/dev/null; then
|
||||
NVM_INSTALL_ERRORED=true
|
||||
echo >&2 "HTTP 404 at URL $url";
|
||||
fi
|
||||
if (
|
||||
[ "$NVM_INSTALL_ERRORED" != true ] && \
|
||||
command mkdir -p "$tmpdir" && \
|
||||
nvm_download -L -C - --progress-bar $url -o "$tmptarball" && \
|
||||
echo "WARNING: checksums are currently disabled for io.js" >&2 && \
|
||||
# nvm_checksum "$tmptarball" $sum && \
|
||||
command tar -xzf "$tmptarball" -C "$tmpdir" --strip-components 1 && \
|
||||
@@ -985,7 +915,7 @@ nvm_install_iojs_binary() {
|
||||
); then
|
||||
return 0
|
||||
else
|
||||
echo >&2 "Binary download failed, trying source." >&2
|
||||
echo "Binary download failed, trying source." >&2
|
||||
command rm -rf "$tmptarball" "$tmpdir"
|
||||
return 1
|
||||
fi
|
||||
@@ -1017,7 +947,7 @@ nvm_install_node_binary() {
|
||||
if nvm_binary_available "$VERSION"; then
|
||||
local NVM_ARCH
|
||||
NVM_ARCH="$(nvm_get_arch)"
|
||||
if [ $NVM_ARCH = "armv6l" ] || [ $NVM_ARCH = "armv7l" ]; then
|
||||
if [ $NVM_ARCH = "armv6l" ]; then
|
||||
NVM_ARCH="arm-pi"
|
||||
fi
|
||||
t="$VERSION-$NVM_OS-$NVM_ARCH"
|
||||
@@ -1027,16 +957,9 @@ nvm_install_node_binary() {
|
||||
tmpdir="$NVM_DIR/bin/node-${t}"
|
||||
local tmptarball
|
||||
tmptarball="$tmpdir/node-${t}.tar.gz"
|
||||
local NVM_INSTALL_ERRORED
|
||||
command mkdir -p "$tmpdir" && \
|
||||
nvm_download -L -C - --progress-bar $url -o "$tmptarball" || \
|
||||
NVM_INSTALL_ERRORED=true
|
||||
if grep '404 Not Found' "$tmptarball" >/dev/null; then
|
||||
NVM_INSTALL_ERRORED=true
|
||||
echo >&2 "HTTP 404 at URL $url";
|
||||
fi
|
||||
if (
|
||||
[ "$NVM_INSTALL_ERRORED" != true ] && \
|
||||
command mkdir -p "$tmpdir" && \
|
||||
nvm_download -L -C - --progress-bar $url -o "$tmptarball" && \
|
||||
nvm_checksum "$tmptarball" $sum && \
|
||||
command tar -xzf "$tmptarball" -C "$tmpdir" --strip-components 1 && \
|
||||
command rm -f "$tmptarball" && \
|
||||
@@ -1045,7 +968,7 @@ nvm_install_node_binary() {
|
||||
); then
|
||||
return 0
|
||||
else
|
||||
echo >&2 "Binary download failed, trying source."
|
||||
echo "Binary download failed, trying source." >&2
|
||||
command rm -rf "$tmptarball" "$tmpdir"
|
||||
return 1
|
||||
fi
|
||||
@@ -1057,14 +980,10 @@ nvm_install_node_binary() {
|
||||
nvm_install_node_source() {
|
||||
local VERSION
|
||||
VERSION="$1"
|
||||
local REINSTALL_PACKAGES_FROM
|
||||
REINSTALL_PACKAGES_FROM="$2"
|
||||
local ADDITIONAL_PARAMETERS
|
||||
ADDITIONAL_PARAMETERS="$2"
|
||||
|
||||
local NVM_ARCH
|
||||
NVM_ARCH="$(nvm_get_arch)"
|
||||
if [ $NVM_ARCH = "armv6l" ] || [ $NVM_ARCH = "armv7l" ]; then
|
||||
ADDITIONAL_PARAMETERS="--without-snapshot $ADDITIONAL_PARAMETERS"
|
||||
fi
|
||||
ADDITIONAL_PARAMETERS="$3"
|
||||
|
||||
if [ -n "$ADDITIONAL_PARAMETERS" ]; then
|
||||
echo "Additional options while compiling: $ADDITIONAL_PARAMETERS"
|
||||
@@ -1110,6 +1029,9 @@ nvm_install_node_source() {
|
||||
$make $MAKE_CXX install
|
||||
)
|
||||
then
|
||||
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..."
|
||||
if nvm_version_greater 0.2.0 "$VERSION"; then
|
||||
@@ -1132,43 +1054,6 @@ nvm_install_node_source() {
|
||||
return $?
|
||||
}
|
||||
|
||||
nvm_match_version() {
|
||||
local NVM_IOJS_PREFIX
|
||||
NVM_IOJS_PREFIX="$(nvm_iojs_prefix)"
|
||||
local PROVIDED_VERSION
|
||||
PROVIDED_VERSION="$1"
|
||||
case "_$PROVIDED_VERSION" in
|
||||
"_$NVM_IOJS_PREFIX" | "_io.js")
|
||||
echo "$(nvm_version $NVM_IOJS_PREFIX)"
|
||||
;;
|
||||
"_system")
|
||||
echo "system"
|
||||
;;
|
||||
*)
|
||||
echo "$(nvm_version "$PROVIDED_VERSION")"
|
||||
;;
|
||||
esac
|
||||
}
|
||||
|
||||
nvm_npm_global_modules() {
|
||||
local NPMLIST
|
||||
local VERSION
|
||||
VERSION="$1"
|
||||
if [ "_$VERSION" = "_system" ]; then
|
||||
NPMLIST=$(nvm use system > /dev/null && npm list -g --depth=0 2> /dev/null | command tail -n +2)
|
||||
else
|
||||
NPMLIST=$(nvm use "$VERSION" > /dev/null && npm list -g --depth=0 2> /dev/null | command tail -n +2)
|
||||
fi
|
||||
|
||||
local INSTALLS
|
||||
INSTALLS=$(echo "$NPMLIST" | command sed -e '/ -> / d' -e '/\(empty\)/ d' -e 's/^.* \(.*@[^ ]*\).*/\1/' -e '/^npm@[^ ]*.*$/ d' | command xargs)
|
||||
|
||||
local LINKS
|
||||
LINKS="$(echo "$NPMLIST" | command sed -n 's/.* -> \(.*\)/\1/ p')"
|
||||
|
||||
echo "$INSTALLS //// $LINKS"
|
||||
}
|
||||
|
||||
nvm() {
|
||||
if [ $# -lt 1 ]; then
|
||||
nvm help
|
||||
@@ -1185,70 +1070,38 @@ nvm() {
|
||||
|
||||
case $1 in
|
||||
"help" )
|
||||
local NVM_IOJS_PREFIX
|
||||
NVM_IOJS_PREFIX="$(nvm_iojs_prefix)"
|
||||
local NVM_NODE_PREFIX
|
||||
NVM_NODE_PREFIX="$(nvm_node_prefix)"
|
||||
echo
|
||||
echo "Node Version Manager"
|
||||
echo
|
||||
echo 'Note: <version> refers to any version-like string nvm understands. This includes:'
|
||||
echo ' - full or partial version numbers, starting with an optional "v" (0.10, v0.1.2, v1)'
|
||||
echo " - default (built-in) aliases: $NVM_NODE_PREFIX, stable, unstable, $NVM_IOJS_PREFIX, system"
|
||||
echo ' - custom aliases you define with `nvm alias foo`'
|
||||
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 reinstall-packages <version> Reinstall global \`npm\` packages contained in <version> to current version"
|
||||
echo " nvm unload Unload \`nvm\` from shell"
|
||||
echo " nvm which [<version>] Display path to installed node version. Uses .nvmrc if available"
|
||||
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 ' --reinstall-packages-from=<version> When installing, reinstall packages installed in <node|iojs|node version number>'
|
||||
echo ' nvm uninstall <version> Uninstall a version'
|
||||
echo ' nvm use [--silent] <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 version <version> Resolve the given description to a single local version'
|
||||
echo ' nvm version-remote <version> Resolve the given description to a single remote version'
|
||||
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 ' nvm which [<version>] Display path to installed node version. Uses .nvmrc if available'
|
||||
echo "Example:"
|
||||
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 'Example:'
|
||||
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 "Note:"
|
||||
echo " to remove, delete, or uninstall nvm - just remove ~/.nvm, ~/.npm, and ~/.bower folders"
|
||||
echo
|
||||
echo 'Note:'
|
||||
echo ' to remove, delete, or uninstall nvm - just remove the `$NVM_DIR` folder (usually `~/.nvm`)'
|
||||
echo
|
||||
;;
|
||||
|
||||
"debug" )
|
||||
local ZHS_HAS_SHWORDSPLIT_UNSET
|
||||
if nvm_has "setopt"; then
|
||||
ZHS_HAS_SHWORDSPLIT_UNSET=$(setopt | command grep shwordsplit > /dev/null ; echo $?)
|
||||
setopt shwordsplit
|
||||
fi
|
||||
echo >&2 "\$SHELL: $SHELL"
|
||||
echo >&2 "\$NVM_DIR: $(echo $NVM_DIR | sed "s#$HOME#\$HOME#g")"
|
||||
local NVM_DEBUG_OUTPUT
|
||||
for NVM_DEBUG_COMMAND in 'nvm current' 'which node' 'which iojs' 'which npm' 'npm config get prefix' 'npm root -g'
|
||||
do
|
||||
NVM_DEBUG_OUTPUT="$($NVM_DEBUG_COMMAND 2>&1 | sed "s#$NVM_DIR#\$NVM_DIR#g")"
|
||||
echo >&2 "$NVM_DEBUG_COMMAND: $NVM_DEBUG_OUTPUT"
|
||||
done
|
||||
if [ "_$ZHS_HAS_SHWORDSPLIT_UNSET" = "_1" ] && nvm_has "unsetopt"; then
|
||||
unsetopt shwordsplit
|
||||
fi
|
||||
return 42
|
||||
;;
|
||||
|
||||
"install" | "i" )
|
||||
@@ -1351,32 +1204,31 @@ nvm() {
|
||||
# io.js does not have a SunOS binary
|
||||
nobinary=1
|
||||
fi
|
||||
local NVM_INSTALL_SUCCESS
|
||||
# skip binary install if "nobinary" option specified.
|
||||
if [ $nobinary -ne 1 ] && nvm_binary_available "$VERSION"; then
|
||||
if [ "$NVM_IOJS" = true ] && nvm_install_iojs_binary std "$VERSION" "$REINSTALL_PACKAGES_FROM"; then
|
||||
local NVM_INSTALL_SUCCESS
|
||||
if [ "$NVM_IOJS" = true ] && nvm_install_iojs_binary "$VERSION" "$REINSTALL_PACKAGES_FROM"; then
|
||||
NVM_INSTALL_SUCCESS=true
|
||||
elif [ "$NVM_IOJS" != true ] && nvm_install_node_binary "$VERSION" "$REINSTALL_PACKAGES_FROM"; then
|
||||
NVM_INSTALL_SUCCESS=true
|
||||
fi
|
||||
fi
|
||||
if [ "$NVM_INSTALL_SUCCESS" != true ]; then
|
||||
if [ "$NVM_IOJS" = true ]; then
|
||||
# nvm_install_iojs_source "$VERSION" "$ADDITIONAL_PARAMETERS"
|
||||
echo "Installing iojs from source is not currently supported" >&2
|
||||
return 105
|
||||
elif nvm_install_node_source "$VERSION" "$ADDITIONAL_PARAMETERS"; then
|
||||
NVM_INSTALL_SUCCESS=true
|
||||
fi
|
||||
fi
|
||||
|
||||
if [ "$NVM_INSTALL_SUCCESS" = true ] && nvm use "$VERSION"; then
|
||||
if [ ! -z "$REINSTALL_PACKAGES_FROM" ] \
|
||||
if [ "$NVM_INSTALL_SUCCESS" = true ] \
|
||||
&& nvm use "$VERSION" \
|
||||
&& [ ! -z "$REINSTALL_PACKAGES_FROM" ] \
|
||||
&& [ "_$REINSTALL_PACKAGES_FROM" != "_N/A" ]; then
|
||||
nvm reinstall-packages "$REINSTALL_PACKAGES_FROM"
|
||||
fi
|
||||
return $?
|
||||
fi
|
||||
|
||||
if [ "$NVM_IOJS" = true ]; then
|
||||
# nvm_install_iojs_source "$VERSION" "$REINSTALL_PACKAGES_FROM" "$ADDITIONAL_PARAMETERS"
|
||||
echo "Installing iojs from source is not currently supported" >&2
|
||||
return 105
|
||||
else
|
||||
nvm_install_node_source "$VERSION" "$REINSTALL_PACKAGES_FROM" "$ADDITIONAL_PARAMETERS"
|
||||
fi
|
||||
return $?
|
||||
;;
|
||||
"uninstall" )
|
||||
if [ $# -ne 2 ]; then
|
||||
@@ -1463,13 +1315,6 @@ nvm() {
|
||||
;;
|
||||
"use" )
|
||||
local PROVIDED_VERSION
|
||||
local NVM_USE_SILENT
|
||||
NVM_USE_SILENT=0
|
||||
if [ "$2" = '--silent' ]; then
|
||||
NVM_USE_SILENT=1
|
||||
shift
|
||||
fi
|
||||
|
||||
if [ $# -eq 1 ]; then
|
||||
nvm_rc_version
|
||||
if [ -n "$NVM_RC_VERSION" ]; then
|
||||
@@ -1477,8 +1322,22 @@ nvm() {
|
||||
VERSION="$(nvm_version "$PROVIDED_VERSION")"
|
||||
fi
|
||||
else
|
||||
local NVM_IOJS_PREFIX
|
||||
NVM_IOJS_PREFIX="$(nvm_iojs_prefix)"
|
||||
local NVM_NODE_PREFIX
|
||||
NVM_NODE_PREFIX="$(nvm_node_prefix)"
|
||||
PROVIDED_VERSION="$2"
|
||||
VERSION="$(nvm_match_version "$PROVIDED_VERSION")"
|
||||
case "_$PROVIDED_VERSION" in
|
||||
"_$NVM_IOJS_PREFIX" | "_io.js")
|
||||
VERSION="$(nvm_version $NVM_IOJS_PREFIX)"
|
||||
;;
|
||||
"_system")
|
||||
VERSION="system"
|
||||
;;
|
||||
*)
|
||||
VERSION="$(nvm_version "$PROVIDED_VERSION")"
|
||||
;;
|
||||
esac
|
||||
fi
|
||||
|
||||
if [ -z "$VERSION" ]; then
|
||||
@@ -1488,25 +1347,17 @@ nvm() {
|
||||
|
||||
if [ "_$VERSION" = '_system' ]; then
|
||||
if nvm_has_system_node && nvm deactivate >/dev/null 2>&1; then
|
||||
if [ $NVM_USE_SILENT -ne 1 ]; then
|
||||
echo "Now using system version of node: $(node -v 2>/dev/null)$(nvm_print_npm_version)"
|
||||
fi
|
||||
echo "Now using system version of node: $(node -v 2>/dev/null)."
|
||||
return
|
||||
elif nvm_has_system_iojs && nvm deactivate >/dev/null 2>&1; then
|
||||
if [ $NVM_USE_SILENT -ne 1 ]; then
|
||||
echo "Now using system version of io.js: $(iojs --version 2>/dev/null)$(nvm_print_npm_version)"
|
||||
fi
|
||||
echo "Now using system version of io.js: $(iojs --version 2>/dev/null)."
|
||||
return
|
||||
else
|
||||
if [ $NVM_USE_SILENT -ne 1 ]; then
|
||||
echo "System version of node not found." >&2
|
||||
fi
|
||||
echo "System version of node not found." >&2
|
||||
return 127
|
||||
fi
|
||||
elif [ "_$VERSION" = "_∞" ]; then
|
||||
if [ $NVM_USE_SILENT -ne 1 ]; then
|
||||
echo "The alias \"$PROVIDED_VERSION\" leads to an infinite loop. Aborting." >&2
|
||||
fi
|
||||
echo "The alias \"$PROVIDED_VERSION\" leads to an infinite loop. Aborting." >&2
|
||||
return 8
|
||||
fi
|
||||
|
||||
@@ -1543,13 +1394,9 @@ nvm() {
|
||||
command rm -f "$NVM_DIR/current" && ln -s "$NVM_VERSION_DIR" "$NVM_DIR/current"
|
||||
fi
|
||||
if nvm_is_iojs_version "$VERSION"; then
|
||||
if [ $NVM_USE_SILENT -ne 1 ]; then
|
||||
echo "Now using io.js $(nvm_strip_iojs_prefix "$VERSION")$(nvm_print_npm_version)"
|
||||
fi
|
||||
echo "Now using io.js $(nvm_strip_iojs_prefix "$VERSION")"
|
||||
else
|
||||
if [ $NVM_USE_SILENT -ne 1 ]; then
|
||||
echo "Now using node $VERSION$(nvm_print_npm_version)"
|
||||
fi
|
||||
echo "Now using node $VERSION"
|
||||
fi
|
||||
;;
|
||||
"run" )
|
||||
@@ -1604,13 +1451,6 @@ nvm() {
|
||||
if [ "_$VERSION" = "_N/A" ]; then
|
||||
echo "$(nvm_ensure_version_prefix "$provided_version") is not installed yet" >&2
|
||||
EXIT_CODE=1
|
||||
elif [ -z "$ARGS" ]; then
|
||||
if [ "$NVM_IOJS" = true ]; then
|
||||
nvm exec "$VERSION" iojs
|
||||
else
|
||||
nvm exec "$VERSION" node
|
||||
fi
|
||||
EXIT_CODE="$?"
|
||||
elif [ "$NVM_IOJS" = true ]; then
|
||||
echo "Running io.js $(nvm_strip_iojs_prefix "$VERSION")"
|
||||
OUTPUT="$(nvm use "$VERSION" >/dev/null && iojs $ARGS)"
|
||||
@@ -1667,13 +1507,9 @@ nvm() {
|
||||
"ls-remote" | "list-remote" )
|
||||
local PATTERN
|
||||
PATTERN="$2"
|
||||
local NVM_IOJS_PREFIX
|
||||
NVM_IOJS_PREFIX="$(nvm_iojs_prefix)"
|
||||
local NVM_NODE_PREFIX
|
||||
NVM_NODE_PREFIX="$(nvm_node_prefix)"
|
||||
local NVM_FLAVOR
|
||||
case "_$PATTERN" in
|
||||
"_$NVM_IOJS_PREFIX" | "_$NVM_NODE_PREFIX" )
|
||||
"_$(nvm_iojs_prefix)" | "_$(nvm_node_prefix)" )
|
||||
NVM_FLAVOR="$PATTERN"
|
||||
PATTERN="$3"
|
||||
;;
|
||||
@@ -1683,7 +1519,7 @@ nvm() {
|
||||
NVM_LS_REMOTE_EXIT_CODE=0
|
||||
local NVM_LS_REMOTE_OUTPUT
|
||||
NVM_LS_REMOTE_OUTPUT=''
|
||||
if [ "_$NVM_FLAVOR" != "_$NVM_IOJS_PREFIX" ]; then
|
||||
if [ "_$NVM_FLAVOR" != "_$(nvm_iojs_prefix)" ]; then
|
||||
NVM_LS_REMOTE_OUTPUT=$(nvm_ls_remote "$PATTERN")
|
||||
NVM_LS_REMOTE_EXIT_CODE=$?
|
||||
fi
|
||||
@@ -1692,14 +1528,14 @@ nvm() {
|
||||
NVM_LS_REMOTE_IOJS_EXIT_CODE=0
|
||||
local NVM_LS_REMOTE_IOJS_OUTPUT
|
||||
NVM_LS_REMOTE_IOJS_OUTPUT=''
|
||||
if [ "_$NVM_FLAVOR" != "_$NVM_NODE_PREFIX" ]; then
|
||||
if [ "_$NVM_FLAVOR" != "_$(nvm_node_prefix)" ]; then
|
||||
NVM_LS_REMOTE_IOJS_OUTPUT=$(nvm_ls_remote_iojs "$PATTERN")
|
||||
NVM_LS_REMOTE_IOJS_EXIT_CODE=$?
|
||||
fi
|
||||
|
||||
local NVM_OUTPUT
|
||||
NVM_OUTPUT="$(echo "$NVM_LS_REMOTE_OUTPUT
|
||||
$NVM_LS_REMOTE_IOJS_OUTPUT" | command grep -v "N/A" | command sed '/^$/d')"
|
||||
$NVM_LS_REMOTE_IOJS_OUTPUT" | command grep -v "N/A" | sed '/^$/d')"
|
||||
if [ -n "$NVM_OUTPUT" ]; then
|
||||
nvm_print_versions "$NVM_OUTPUT"
|
||||
return $NVM_LS_REMOTE_EXIT_CODE || $NVM_LS_REMOTE_IOJS_EXIT_CODE
|
||||
@@ -1832,74 +1668,51 @@ $NVM_LS_REMOTE_IOJS_OUTPUT" | command grep -v "N/A" | command sed '/^$/d')"
|
||||
return 2
|
||||
fi
|
||||
|
||||
local VERSION
|
||||
local NPMLIST
|
||||
if [ "_$PROVIDED_VERSION" = "_system" ]; then
|
||||
if ! nvm_has_system_node && ! nvm_has_system_iojs; then
|
||||
echo 'No system version of node or io.js detected.' >&2
|
||||
return 3
|
||||
fi
|
||||
VERSION="system"
|
||||
NPMLIST=$(nvm deactivate > /dev/null && npm list -g --depth=0 | command tail -n +2)
|
||||
else
|
||||
local VERSION
|
||||
VERSION="$(nvm_version "$PROVIDED_VERSION")"
|
||||
NPMLIST=$(nvm use "$VERSION" > /dev/null && npm list -g --depth=0 | command tail -n +2)
|
||||
fi
|
||||
|
||||
local NPMLIST
|
||||
NPMLIST="$(nvm_npm_global_modules "$VERSION")"
|
||||
local INSTALLS
|
||||
local LINKS
|
||||
INSTALLS="${NPMLIST%% //// *}"
|
||||
LINKS="${NPMLIST##* //// }"
|
||||
INSTALLS=$(echo "$NPMLIST" | command sed -e '/ -> / d' -e 's/^.* \(.*\)@.*/\1/' -e '/^npm$/ d' | command xargs)
|
||||
|
||||
echo "Reinstalling global packages from $VERSION..."
|
||||
echo "Copying global packages from $VERSION..."
|
||||
echo "$INSTALLS" | command xargs npm install -g --quiet
|
||||
|
||||
local LINKS
|
||||
LINKS=$(echo "$NPMLIST" | command sed -n 's/.* -> \(.*\)/\1/ p')
|
||||
|
||||
echo "Linking global packages from $VERSION..."
|
||||
set -f; IFS='
|
||||
' # necessary to turn off variable expansion except for newlines
|
||||
for LINK in $LINKS; do
|
||||
set +f; unset IFS # restore variable expansion
|
||||
if [ -n "$LINK" ]; then
|
||||
(cd "$LINK" && npm link)
|
||||
fi
|
||||
(cd "$LINK" && npm link)
|
||||
done
|
||||
set +f; unset IFS # restore variable expansion in case $LINKS was empty
|
||||
;;
|
||||
"clear-cache" )
|
||||
command rm -f $NVM_DIR/v* "$(nvm_version_dir)" 2>/dev/null
|
||||
echo "Cache cleared."
|
||||
;;
|
||||
"version" )
|
||||
nvm_version "$2"
|
||||
;;
|
||||
"version-remote" )
|
||||
nvm_remote_version "$2"
|
||||
nvm_version $2
|
||||
;;
|
||||
"--version" )
|
||||
echo "0.26.1"
|
||||
echo "0.24.2"
|
||||
;;
|
||||
"unload" )
|
||||
unset -f nvm nvm_print_versions nvm_checksum \
|
||||
nvm_iojs_prefix nvm_node_prefix \
|
||||
nvm_add_iojs_prefix nvm_strip_iojs_prefix \
|
||||
nvm_is_iojs_version nvm_is_alias \
|
||||
nvm_ls_remote nvm_ls_remote_iojs nvm_ls_remote_iojs_org \
|
||||
nvm_ls nvm_remote_version nvm_remote_versions \
|
||||
nvm_install_iojs_binary nvm_install_node_binary \
|
||||
nvm_install_node_source \
|
||||
nvm_version nvm_rc_version nvm_match_version \
|
||||
nvm_ensure_default_set nvm_get_arch nvm_get_os \
|
||||
nvm_print_implicit_alias nvm_validate_implicit_alias \
|
||||
nvm_resolve_alias nvm_ls_current nvm_alias \
|
||||
nvm_binary_available nvm_prepend_path nvm_strip_path \
|
||||
nvm_num_version_groups nvm_format_version nvm_ensure_version_prefix \
|
||||
nvm_normalize_version nvm_is_valid_version \
|
||||
nvm_ensure_version_installed \
|
||||
nvm_version_path nvm_alias_path nvm_version_dir \
|
||||
nvm_find_nvmrc nvm_find_up nvm_tree_contains_path \
|
||||
nvm_is_iojs_version \
|
||||
nvm_ls_remote nvm_ls nvm_remote_version nvm_remote_versions \
|
||||
nvm_version nvm_rc_version \
|
||||
nvm_version_greater nvm_version_greater_than_or_equal_to \
|
||||
nvm_print_npm_version nvm_npm_global_modules \
|
||||
nvm_has_system_node nvm_has_system_iojs \
|
||||
nvm_download nvm_get_latest nvm_has nvm_get_latest \
|
||||
nvm_supports_source_options > /dev/null 2>&1
|
||||
unset RC_VERSION NVM_NODEJS_ORG_MIRROR NVM_DIR NVM_CD_FLAGS > /dev/null 2>&1
|
||||
;;
|
||||
@@ -1922,9 +1735,7 @@ if nvm_supports_source_options && [ "_$1" = "_--install" ]; then
|
||||
nvm install >/dev/null
|
||||
fi
|
||||
elif [ -n "$VERSION" ]; then
|
||||
nvm use --silent "$VERSION" >/dev/null
|
||||
nvm use "$VERSION" >/dev/null
|
||||
elif nvm_rc_version >/dev/null 2>&1; then
|
||||
nvm use --silent >/dev/null
|
||||
nvm use >/dev/null
|
||||
fi
|
||||
|
||||
} # this ensures the entire script is downloaded #
|
||||
|
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "nvm",
|
||||
"version": "0.26.1",
|
||||
"version": "0.24.2",
|
||||
"description": "Node Version Manager - Simple bash script to manage multiple active node.js versions",
|
||||
"directories": {
|
||||
"test": "test"
|
||||
@@ -30,8 +30,8 @@
|
||||
},
|
||||
"homepage": "https://github.com/creationix/nvm",
|
||||
"devDependencies": {
|
||||
"replace": "^0.3.0",
|
||||
"semver": "^5.0.1",
|
||||
"urchin": "^0.0.5"
|
||||
"replace": "~0.3.0",
|
||||
"semver": "~4.2.0",
|
||||
"urchin": "~0.0.5"
|
||||
}
|
||||
}
|
||||
|
@@ -1,18 +0,0 @@
|
||||
#!/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"
|
@@ -14,4 +14,3 @@ rm -f "../../../alias/stable"
|
||||
rm -f "../../../alias/unstable"
|
||||
rm -f "../../../alias/node"
|
||||
rm -f "../../../alias/iojs"
|
||||
rm -f "../../../alias/default"
|
||||
|
@@ -18,13 +18,5 @@ EXPECTED_OUTPUT='The alias "foo" leads to an infinite loop. Aborting.'
|
||||
EXIT_CODE="$(nvm use foo 2>/dev/null ; echo $?)"
|
||||
[ "_$EXIT_CODE" = "_8" ] || die "Expected exit code 8; got $EXIT_CODE"
|
||||
|
||||
OUTPUT="$(nvm use --silent foo 2>&1)"
|
||||
EXPECTED_OUTPUT=''
|
||||
[ "_$OUTPUT" = "_$EXPECTED_OUTPUT" ] \
|
||||
|| die "'nvm use --silent foo' did not output '$EXPECTED_OUTPUT'; got '$OUTPUT'"
|
||||
|
||||
EXIT_CODE="$(nvm use --silent foo 2>/dev/null ; echo $?)"
|
||||
[ "_$EXIT_CODE" = "_8" ] || die "Expected exit code 8 from 'nvm use --silent foo'; got $EXIT_CODE"
|
||||
|
||||
cleanup;
|
||||
|
||||
|
@@ -18,13 +18,5 @@ EXPECTED_OUTPUT='The alias "foo" leads to an infinite loop. Aborting.'
|
||||
EXIT_CODE="$(nvm use foo 2>/dev/null ; echo $?)"
|
||||
[ "_$EXIT_CODE" = "_8" ] || die "Expected exit code 8; got $EXIT_CODE"
|
||||
|
||||
OUTPUT="$(nvm use --silent foo 2>&1)"
|
||||
EXPECTED_OUTPUT=''
|
||||
[ "_$OUTPUT" = "_$EXPECTED_OUTPUT" ] \
|
||||
|| die "'nvm use --silent foo' did not output '$EXPECTED_OUTPUT'; got '$OUTPUT'"
|
||||
|
||||
EXIT_CODE="$(nvm use --silent foo 2>/dev/null ; echo $?)"
|
||||
[ "_$EXIT_CODE" = "_8" ] || die "Expected exit code 8 from 'nvm use --silent foo'; got $EXIT_CODE"
|
||||
|
||||
cleanup;
|
||||
|
||||
|
@@ -5,18 +5,9 @@ die () { echo $@ ; exit 1; }
|
||||
. ../../nvm.sh
|
||||
|
||||
nvm_has_system_node() { return 0; }
|
||||
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"
|
||||
EXPECTED_OUTPUT=""
|
||||
[ "$(nvm use --silent system 2>&1 | tail -n1)" = "$EXPECTED_OUTPUT" ] || die "Could not use system version of node or --silent was not silent"
|
||||
[ "$(nvm use system 2>&1 | tail -n1)" = "Now using system version of node: $(node -v)." ] || die "Could not use system version of node"
|
||||
|
||||
nvm_has_system_node() { return 1; }
|
||||
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 | tail -n1)" = "System version of node not found." ] || 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"
|
||||
EXPECTED_OUTPUT=""
|
||||
[ "$(nvm use --silent system 2>&1 | tail -n1)" = "$EXPECTED_OUTPUT" ] || die "Did not report error, system node not found or --silent was not silent"
|
||||
nvm use --silent system 2>&1 > /dev/null || [ $? -eq 127 ] || die "Did not return error code, system node not found or --silent was not silent"
|
||||
|
||||
|
@@ -1,13 +0,0 @@
|
||||
#!/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
|
@@ -5,17 +5,13 @@ die () { echo $@ ; exit 1; }
|
||||
. ../../../nvm.sh
|
||||
|
||||
[ "~$(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 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 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"
|
||||
|
||||
|
@@ -8,8 +8,6 @@ cleanup() {
|
||||
rm -rf ../../../v0.5.7
|
||||
rm -rf ../../../v0.7.7
|
||||
rm -rf ../../../versions/io.js/v0.98.0
|
||||
rm -rf ../../../versions/node/v1.0.0
|
||||
rm -rf ../../../versions/node/v1.1.0
|
||||
unset -f nvm_ls_remote nvm_ls_remote_iojs
|
||||
}
|
||||
|
||||
@@ -34,17 +32,6 @@ LATEST_UNSTABLE="$(nvm_print_implicit_alias local 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"
|
||||
|
||||
## node post v1.0/io.js merger ##
|
||||
mkdir -p ../../../versions/node/v1.0.0
|
||||
mkdir -p ../../../versions/node/v1.1.0
|
||||
|
||||
LATEST_STABLE="$(nvm_print_implicit_alias local stable)"
|
||||
[ "_$LATEST_STABLE" = "_1.1" ] || die "local stable when post-v1.0 exists is not latest: expected 1.1, got $LATEST_STABLE"
|
||||
|
||||
LATEST_UNSTABLE="$(nvm_print_implicit_alias local unstable)"
|
||||
[ "_$LATEST_UNSTABLE" = "_0.7" ] || die "local unstable is not latest pre-v1.0 odd minor: expected 0.7, got $LATEST_UNSTABLE"
|
||||
## ** ##
|
||||
|
||||
nvm_ls_remote() {
|
||||
echo "v0.4.3"
|
||||
echo "v0.5.4"
|
||||
@@ -78,28 +65,5 @@ LATEST_UNSTABLE="$(nvm_print_implicit_alias remote 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"
|
||||
|
||||
## node post v1.0/io.js merger ##
|
||||
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"
|
||||
echo "v1.0.0"
|
||||
echo "v1.1.0"
|
||||
}
|
||||
|
||||
LATEST_STABLE="$(nvm_print_implicit_alias remote stable)"
|
||||
[ "_$LATEST_STABLE" = "_1.1" ] || die "remote stable when post-v1.0 exists is not latest: expected 1.1, got $LATEST_STABLE"
|
||||
|
||||
LATEST_UNSTABLE="$(nvm_print_implicit_alias remote unstable)"
|
||||
[ "_$LATEST_UNSTABLE" = "_0.9" ] || die "remote unstable is not latest odd pre-v1.0 minor: expected 0.9, got $LATEST_UNSTABLE"
|
||||
## ** ##
|
||||
|
||||
cleanup
|
||||
|
||||
|
@@ -1,28 +0,0 @@
|
||||
#!/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
|
@@ -22,80 +22,46 @@ HOME="."
|
||||
|
||||
setup
|
||||
|
||||
#Let's force $SHELL to be bash
|
||||
SHELL="/bin/bash"
|
||||
|
||||
# $SHELL is set to bash and .bashrc is there, it must be detected
|
||||
_PROFILE=$(nvm_detect_profile)
|
||||
[ "_$_PROFILE" = "_$HOME/.bashrc" ] || echo "_\$HOME/.bashrc: _$HOME/.bashrc\n" \
|
||||
echo "_\$_PROFILE: _$_PROFILE\n" \
|
||||
die "nvm_detect_profile didn't pick $SHELL and $HOME/.bashrc"
|
||||
|
||||
#Let's force $SHELL to be zsh
|
||||
SHELL="/usr/bin/zsh"
|
||||
|
||||
# $SHELL is set to zsh and .zshrc is there, it must be detected
|
||||
_PROFILE=$(nvm_detect_profile)
|
||||
[ "_$_PROFILE" = "_$HOME/.zshrc" ] || echo "_\$HOME/.zshrc: _$HOME/.zshrc\n" \
|
||||
echo "_\$_PROFILE: _$_PROFILE\n" \
|
||||
die "nvm_detect_profile didn't pick $SHELL and $HOME/.zshrc"
|
||||
|
||||
|
||||
# if we unset shell it looks for the files
|
||||
unset SHELL
|
||||
|
||||
# $PROFILE points to a valid file, its path must be returned
|
||||
PROFILE="test_profile"
|
||||
_PROFILE=$(nvm_detect_profile)
|
||||
[ "_$_PROFILE" = "_$PROFILE" ] || echo "_\$_PROFILE: _$_PROFILE\n" \
|
||||
echo "_\$PROFILE: _$PROFILE\n" \
|
||||
die "nvm_detect_profile didn't pick \$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" ] || echo "_\$_PROFILE: _$_PROFILE\n" \
|
||||
echo "_\$PROFILE: _$PROFILE\n" \
|
||||
die "nvm_detect_profile shouldn't pick \$PROFILE when it's not a valid file"
|
||||
[ "_$_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 .profile if file exists
|
||||
# It should favor .bashrc if file exists
|
||||
_PROFILE=$(nvm_detect_profile)
|
||||
[ "_$_PROFILE" = "_$HOME/.profile" ] || echo "_\$_PROFILE: _$_PROFILE\n" \
|
||||
echo "_\$PROFILE: _$PROFILE\n" \
|
||||
die "nvm_detect_profile should have selected .profile"
|
||||
|
||||
rm .profile
|
||||
# Otherwise, it should favor .bashrc if file exists
|
||||
_PROFILE=$(nvm_detect_profile)
|
||||
[ "_$_PROFILE" = "_$HOME/.bashrc" ] || echo "_\$_PROFILE: _$_PROFILE\n" \
|
||||
echo "_\$PROFILE: _$PROFILE\n" \
|
||||
die "nvm_detect_profile should have selected .bashrc"
|
||||
[ "_$_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" ] || echo "_\$_PROFILE: _$_PROFILE\n" \
|
||||
echo "_\$PROFILE: _$PROFILE\n" \
|
||||
die "nvm_detect_profile should have selected .bash_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" ] || echo "_\$_PROFILE: _$_PROFILE\n" \
|
||||
echo "_\$PROFILE: _$PROFILE\n" \
|
||||
die "nvm_detect_profile should have selected .zshrc"
|
||||
[ "_$_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" ] || echo "_\$_PROFILE: _$_PROFILE\n" \
|
||||
echo "_\$PROFILE: _$PROFILE\n" \
|
||||
die "nvm_detect_profile should have echo'ed an empty value"
|
||||
[ -z "$_PROFILE" ] || die "nvm_detect_profile should have echo'ed an empty value"
|
||||
|
||||
|
||||
cleanup
|
||||
|
||||
|
@@ -15,7 +15,7 @@ safe_type() {
|
||||
safe_type nvm_reset || die 'nvm_reset is not available'
|
||||
|
||||
# Apply nvm_reset
|
||||
nvm_reset || die 'nvm_reset failed'
|
||||
nvm_reset
|
||||
|
||||
# The names should be unset
|
||||
! safe_type nvm_do_install || die 'nvm_do_install is still available'
|
||||
|
@@ -16,8 +16,8 @@ nvm install iojs-v1.0.0
|
||||
|
||||
node --version | grep v1.0.0 > /dev/null || die "nvm install didn't use iojs-v1.0.0"
|
||||
|
||||
npm install -g object-is@0.0.0 || die "npm install -g object-is failed"
|
||||
npm list --global | grep object-is > /dev/null || die "object-is isn't installed"
|
||||
npm install -g is-nan@1.0.1 || die "npm install -g is-nan failed"
|
||||
npm list --global | grep is-nan > /dev/null || die "is-nan isn't installed"
|
||||
|
||||
nvm ls iojs-1 | grep iojs-v1.0.0 > /dev/null || die "nvm ls iojs-1 didn't show iojs-v1.0.0"
|
||||
|
||||
@@ -28,5 +28,5 @@ nvm install iojs-v1.0.1 --reinstall-packages-from=iojs-1.0.0 || die "nvm install
|
||||
nvm use iojs-1
|
||||
node --version | grep v1.0.1 > /dev/null || die "nvm use iojs-1 didn't use v1.0.1"
|
||||
|
||||
npm list --global | grep object-is > /dev/null || die "object-is isn't installed"
|
||||
npm list --global | grep is-nan > /dev/null || die "is-nan isn't installed"
|
||||
|
||||
|
@@ -1,25 +0,0 @@
|
||||
#!/bin/sh
|
||||
|
||||
die () { echo $@ ; exit 1; }
|
||||
|
||||
. ../../../nvm.sh
|
||||
|
||||
NVM_TEST_VERSION=v0.10.7
|
||||
|
||||
# Remove the stuff we're clobbering.
|
||||
[ -e ../../../$NVM_TEST_VERSION ] && rm -R ../../../$NVM_TEST_VERSION
|
||||
|
||||
# Fake ARM arch
|
||||
nvm_get_arch() {
|
||||
echo "armv7l"
|
||||
}
|
||||
|
||||
# Install from source
|
||||
nvm install -s $NVM_TEST_VERSION || die "'nvm install -s $NVM_TEST_VERSION' failed"
|
||||
|
||||
# Check Install
|
||||
[ -d ../../../$NVM_TEST_VERSION ]
|
||||
node --version | grep $NVM_TEST_VERSION || "'node --version | grep $NVM_TEST_VERSION' failed"
|
||||
|
||||
# Check V8 snapshot isn't compiled
|
||||
node -p "if(! process.config.variables.v8_use_snapshot) { console.log('no-snapshot'); }" | grep "no-snapshot" || "'node -p \"if(! process.config.variables.v8_use_snapshot) { console.log('no-snapshot'); }\" | grep \"no-snapshot\"' failed"
|
@@ -18,8 +18,8 @@ nvm use 0.9.7
|
||||
|
||||
node --version | grep v0.9.7 > /dev/null || die "nvm use 0.9.7 failed"
|
||||
|
||||
npm install -g object-is@0.0.0 || die "npm install -g object-is failed"
|
||||
npm list --global | grep object-is > /dev/null || die "object-is isn't installed"
|
||||
npm install -g is-nan@1.0.1 || die "npm install -g is-nan failed"
|
||||
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"
|
||||
|
||||
@@ -30,5 +30,5 @@ nvm install 0.9.12 --reinstall-packages-from=0.9 || die "nvm install 0.9.12 --re
|
||||
nvm use 0.9
|
||||
node --version | grep v0.9.12 > /dev/null || die "nvm ls 0.9 didn't use v0.9.12"
|
||||
|
||||
npm list --global | grep object-is > /dev/null || die "object-is isn't installed"
|
||||
npm list --global | grep is-nan > /dev/null || die "is-nan isn't installed"
|
||||
|
||||
|
@@ -4,15 +4,12 @@ die () { echo "$@" ; exit 1; }
|
||||
|
||||
. ../../../nvm.sh
|
||||
|
||||
nvm exec 0.10.28 npm install -g npm@~1.4.11 # this is required because before 1.4.10, npm ls doesn't indicated linked packages
|
||||
nvm exec 0.10.29 npm install -g npm@~1.4.11 # this is required because before 1.4.10, npm ls doesn't indicated linked packages
|
||||
|
||||
nvm use 0.10.28
|
||||
(cd test-npmlink && npm link)
|
||||
|
||||
EXPECTED_PACKAGES="autoprefixer bower david eslint grunt-cli grunth-cli http-server jshint marked node-gyp npmlist recursive-blame spawn-sync test-npmlink uglify-js 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" | sed -e 's/test-npmlink //' | 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
|
||||
|
@@ -12,9 +12,3 @@ EXPECTED_OUTPUT="iojs-v1.0.1"
|
||||
|
||||
[ "_$OUTPUT" = "_$EXPECTED_OUTPUT" ] \
|
||||
|| die "'nvm use iojs' + 'nvm current' did not output '$EXPECTED_OUTPUT'; got '$OUTPUT'"
|
||||
|
||||
OUTPUT="$(nvm use --silent iojs)"
|
||||
EXPECTED_OUTPUT=""
|
||||
|
||||
[ "_$OUTPUT" = "_$EXPECTED_OUTPUT" ] \
|
||||
|| die "'nvm use --silent iojs' output was not silenced '$EXPECTED_OUTPUT'; got '$OUTPUT'"
|
||||
|
@@ -12,9 +12,3 @@ EXPECTED_OUTPUT="$(nvm_version stable)"
|
||||
|
||||
[ "_$OUTPUT" = "_$EXPECTED_OUTPUT" ] \
|
||||
|| die "'nvm use node' + 'nvm current' did not output '$EXPECTED_OUTPUT'; got '$OUTPUT'"
|
||||
|
||||
OUTPUT="$(nvm use --silent node)"
|
||||
EXPECTED_OUTPUT=""
|
||||
|
||||
[ "_$OUTPUT" = "_$EXPECTED_OUTPUT" ] \
|
||||
|| die "'nvm use --silent node' output was not silenced '$EXPECTED_OUTPUT'; got '$OUTPUT'"
|
||||
|
@@ -12,9 +12,3 @@ 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'"
|
||||
|
||||
OUTPUT="$(nvm use --silent 'v1.0.0')"
|
||||
EXPECTED_OUTPUT=""
|
||||
|
||||
[ "_$OUTPUT" = "_$EXPECTED_OUTPUT" ] \
|
||||
|| die "'nvm use --silent v1.0.0' output was not silenced '$EXPECTED_OUTPUT'; got '$OUTPUT'"
|
||||
|
@@ -10,12 +10,12 @@ cleanup() {
|
||||
|
||||
EXPECTED_VERSION="v12.3.456"
|
||||
URL="https://github.com/creationix/nvm/releases/tag/$EXPECTED_VERSION"
|
||||
EXPECTED_CURL_ARGS="-q -w %{url_effective}\n -L -s -S http://latest.nvm.sh -o /dev/null"
|
||||
EXPECTED_CURL_ARGS="-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"
|
||||
|
||||
curl() {
|
||||
if [ "_$*" != "_$EXPECTED_CURL_ARGS" ]; then
|
||||
echo >&2 "expected args ($EXPECTED_CURL_ARGS), got ($*)"
|
||||
echo 2>& "expected args ($EXPECTED_CURL_ARGS), got ($*)"
|
||||
return 1
|
||||
else
|
||||
echo $URL
|
||||
@@ -23,7 +23,7 @@ curl() {
|
||||
}
|
||||
wget() {
|
||||
if [ "_$*" != "_$EXPECTED_WGET_ARGS" ]; then
|
||||
echo >&2 "expected args ($EXPECTED_WGET_ARGS), got ($*)"
|
||||
echo 2>& "expected args ($EXPECTED_WGET_ARGS), got ($*)"
|
||||
return 1
|
||||
else
|
||||
local WGET_CONTENTS
|
||||
@@ -100,7 +100,7 @@ Saving to: ‘/dev/null’
|
||||
"
|
||||
"$WGET_CONTENTS" | while read line
|
||||
do
|
||||
>&2 echo "$line"
|
||||
2>& echo "$line"
|
||||
done
|
||||
fi
|
||||
}
|
||||
|
Reference in New Issue
Block a user