Compare commits

..

2 Commits

Author SHA1 Message Date
Jordan Harband
00f3ba0831 v0.24.2 2015-05-22 15:20:49 -07:00
Jordan Harband
0f1efc825e Make sure sourcing nvm.sh on shells that don't support source options doesn't exit nonzero.
Fixes #721
2015-05-22 15:20:33 -07:00
27 changed files with 204 additions and 656 deletions

1
.gitattributes vendored
View File

@@ -1 +0,0 @@
*.sh eol=lf

View File

@@ -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

View File

@@ -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

View File

@@ -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}"
}

View File

@@ -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 #

View File

@@ -11,3 +11,4 @@ else
fi
exec $@

477
nvm.sh
View File

@@ -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 #

View File

@@ -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"
}
}

View File

@@ -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"

View File

@@ -14,4 +14,3 @@ rm -f "../../../alias/stable"
rm -f "../../../alias/unstable"
rm -f "../../../alias/node"
rm -f "../../../alias/iojs"
rm -f "../../../alias/default"

View File

@@ -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;

View File

@@ -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;

View File

@@ -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"

View File

@@ -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

View File

@@ -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"

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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'

View File

@@ -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"

View File

@@ -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"

View File

@@ -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"

View File

@@ -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

View File

@@ -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'"

View File

@@ -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'"

View File

@@ -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'"

View File

@@ -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
}