Compare commits

..

48 Commits

Author SHA1 Message Date
Jordan Harband
1da31aa425 v0.8.0 2014-06-20 11:35:18 -07:00
Jordan Harband
519a9481e6 Merge pull request #438 from koenpunt/patch-2
Suppress output of `nvm use`
2014-06-18 00:08:06 -07:00
Koen Punt
b16bf303ca Suppress output of nvm use
+redirect errors to stdout
2014-06-18 08:54:14 +02:00
Jordan Harband
9a28706688 Merge pull request #436 from koenpunt/stderr
redirect output of errors to stderr
2014-06-16 16:37:31 -07:00
Koen Punt
a318ddf9b3 redirect stderr to stdout in test 2014-06-17 01:22:17 +02:00
Koen Punt
8dbbc32905 redirect errors to stderr 2014-06-17 01:22:12 +02:00
Jordan Harband
de03007348 Merge pull request #432 from ajcrites/master
Only list extant explicit version
2014-06-12 11:55:56 -07:00
Andrew Crites
1b22c2e2b1 Including test for specific version listing
This fixes the issue of nvm ls v[:digit:].[:digit:].[:digit:] listing the version even if it isn't available
2014-06-12 14:01:26 -04:00
Andrew Crites
0e1f2408c9 Only list extant explicit version 2014-06-12 10:56:20 -04:00
Jordan Harband
931cc45fc3 Merge pull request #428 from koenpunt/export-nvm-dir-in-profile
export NVM_DIR in profile before sourcing nvm.sh
2014-05-29 16:04:25 -07:00
Jordan Harband
085e314a3f Adding a trailing newline 2014-05-28 20:54:25 -07:00
Jordan Harband
6aa45732d8 Merge pull request #376 from koenpunt/nvm-unload
Feature: nvm unload
2014-05-28 20:53:50 -07:00
Koen Punt
16c0be8314 export NVM_DIR before sourcing nvm.sh 2014-05-28 14:32:01 +02:00
Jordan Harband
578a601b27 Filter out of nvm ls things that start with a dot. Fixes #421, closes #422. 2014-05-20 10:36:12 -07:00
Jordan Harband
896aa7c436 Updating CONTRIBUTING guidelines
Fixes #425
2014-05-19 22:05:13 -07:00
Jordan Harband
2441b00262 Merge pull request #417 from koenpunt/travis_tweaks
Split tests by shell
2014-05-10 10:13:53 -07:00
Koen Punt
88595f09aa remove fast task 2014-05-10 19:03:50 +02:00
Koen Punt
5925bd5e37 make suite for shell task configurable 2014-05-10 18:59:34 +02:00
Koen Punt
24e22dd8bc no need for the extra task, every shell name is already a task 2014-05-10 12:27:11 +02:00
Koen Punt
61de5f9ca3 enable slow test suite for sh 2014-05-10 12:15:19 +02:00
Jordan Harband
4de9eff55c Merge pull request #416 from koenpunt/patch-2
Use correct variables
2014-05-09 10:49:43 -07:00
Koen Punt
7e20a77c89 pass env vars to makefile 2014-05-09 16:42:04 +02:00
Koen Punt
8fbbeb8fc5 ensure correct shell usage 2014-05-09 16:30:04 +02:00
Koen Punt
79203ba5d0 split tests by shell 2014-05-09 16:23:14 +02:00
Koen Punt
2e3e48cc06 Use correct variables 2014-05-09 15:36:44 +02:00
Jordan Harband
db8acf11fd v0.7.0 2014-05-08 10:30:52 -07:00
Jordan Harband
a6be718387 Fixing --version output format. 2014-05-08 10:30:34 -07:00
Jordan Harband
e2c4c88136 Updating example node versions. 2014-05-08 10:30:18 -07:00
Jordan Harband
4cd0b078d0 Merge pull request #415 from koenpunt/fix-path-concat
utility method for append path, fixes #414
2014-05-08 10:27:17 -07:00
Koen Punt
f6ba08253b utility method for append path, fixes #414 2014-05-08 10:20:11 +02:00
Jordan Harband
0ecb2879b9 Merge pull request #412 from koenpunt/fix-sed
Use sed -e instead of -E
2014-05-07 10:32:00 -07:00
Koen Punt
e3b84499c2 use regex triplet, add unit test 2014-05-07 10:58:21 +02:00
Koen Punt
b313f62749 Use sed -e instead of -E 2014-05-07 10:58:18 +02:00
Jordan Harband
7f3a794d89 Merge pull request #409 from koenpunt/sed-path-replacement
Use sed for *PATH stripping
2014-05-06 01:37:49 -07:00
Jordan Harband
ba1be9b4ea Making nvm install use the version, even if it's already installed. Fixes #410 2014-05-05 23:32:39 -07:00
Koen Punt
652a9ef9b5 always apply path stripping 2014-05-06 00:00:25 +02:00
Koen Punt
0d81a219ae add quotes 2014-05-05 22:05:02 +02:00
Koen Punt
d6e457354f use nvm_strip_path utility method for path stripping 2014-05-05 22:03:11 +02:00
Koen Punt
6668dc5c47 remove parentheses 2014-05-05 21:50:59 +02:00
Koen Punt
3d9c1d7852 use sed for *PATH stripping 2014-05-05 21:43:22 +02:00
Jordan Harband
29f582611b v0.6.1 2014-05-04 12:40:02 -07:00
Jordan Harband
673cda56c4 Adding a test for nvm install invalid behavior, and correcting the message.
From f00d688c87 (commitcomment-6205164)
2014-05-04 12:03:26 -07:00
Jordan Harband
e562a5645b v0.6.0 2014-05-04 02:20:31 -07:00
Jordan Harband
c0c5e8d7ef Editing README to note improved .nvmrc behavior. 2014-05-04 02:20:24 -07:00
Jordan Harband
f00d688c87 Nicer failure message when trying to install an invalid version. Fixes #285. 2014-05-04 00:59:08 -07:00
Jordan Harband
5aa78f21cf Merge branch 'nvmrc' - Fixes #404 2014-05-04 00:47:16 -07:00
Koen Punt
703acb0514 Added test for nvm unload 2014-03-23 16:44:40 +01:00
Koen Punt
744507b83e added nvm unload method to remove nvm from shell 2014-03-23 16:44:37 +01:00
16 changed files with 209 additions and 95 deletions

View File

@@ -4,5 +4,11 @@ install:
before_script:
- curl -o /tmp/urchin https://raw.githubusercontent.com/scraperwiki/urchin/master/urchin && chmod +x /tmp/urchin
script:
- NVM_DIR=$TRAVIS_BUILD_DIR make URCHIN=/tmp/urchin test
- NVM_DIR=$TRAVIS_BUILD_DIR make TEST_SUITE=$TEST_SUITE URCHIN=/tmp/urchin $SHELL
env:
- SHELL=sh TEST_SUITE=fast
- SHELL=dash TEST_SUITE=fast
- SHELL=bash TEST_SUITE=fast
- SHELL=zsh TEST_SUITE=fast
- SHELL=ksh TEST_SUITE=fast
- SHELL=sh TEST_SUITE=slow

View File

@@ -5,7 +5,7 @@ We love pull requests, they're our favorite.
However, before submitting, please review the following:
- Please include tests. Changes with tests will be merged very quickly.
- Please manually confirm that your changes, and all tests, pass in `bash`, `sh`, and `zsh`. We hope to soon automatically run all these tests, but in the meantime, we have to rely on each contributor doing so.
- Please manually confirm that your changes work in `bash`, `sh`/`dash`, `ksh`, and `zsh`. Fast tests do run in these shells, but it's nice to manually verify also.
- Please maintain consistent whitespace - 2-space indentation, trailing newlines in all files, etc.
- Any time you make a change to your PR, please rebase freshly on top of master. Nobody likes merge commits.

View File

@@ -1,15 +1,14 @@
URCHIN=`which urchin`
SHELLS=sh bash dash ksh zsh
TEST_SUITE=fast
.PHONY: $(SHELLS) test
fast: $(SHELLS)
$(SHELLS):
@printf '\n\033[0;34m%s\033[0m\n' "Running tests in $@"
@$@ $(URCHIN) -f test/fast
@$@ $(URCHIN) -f test/$(TEST_SUITE)
test: fast
test: $(SHELLS)
@$(URCHIN) -f test/slow
default: test

View File

@@ -8,11 +8,11 @@ First you'll need to make sure your system has a c++ compiler. For OSX, XCode w
To install you could use the [install script][2] using cURL:
curl https://raw.githubusercontent.com/creationix/nvm/v0.5.1/install.sh | sh
curl https://raw.githubusercontent.com/creationix/nvm/v0.8.0/install.sh | sh
or Wget:
wget -qO- https://raw.githubusercontent.com/creationix/nvm/v0.5.1/install.sh | sh
wget -qO- https://raw.githubusercontent.com/creationix/nvm/v0.8.0/install.sh | sh
<sub>The script clones the nvm repository to `~/.nvm` and adds the source line to your profile (`~/.bash_profile`, `~/.zshrc` or `~/.profile`).</sub>
@@ -37,6 +37,9 @@ Often I also put in a line to use a specific version of node.
## Usage
You can create an `.nvmrc` file containing version number in the project root directory (or any parent directory).
`nvm use`, `nvm install`, and `nvm run` will all respect an `.nvmrc` file.
To download, compile, and install the latest v0.10.x release of node, do this:
nvm install 0.10
@@ -45,13 +48,9 @@ And then in any new shell just use the installed version:
nvm use 0.10
You can create an `.nvmrc` file containing version number in the project root folder; run the following command to switch versions:
nvm use
Or you can just run it:
nvm run 0.10
nvm run 0.10 --version
If you want to see what versions are installed:
@@ -133,17 +132,17 @@ nvm alias
default
$ nvm alias my_alias [tab][tab]
v0.4.11 v0.4.12 v0.6.14
v0.6.21 v0.8.26 v0.10.28
nvm use
$ nvm use [tab][tab]
my_alias default v0.4.11 v0.4.12 v0.6.14
my_alias default v0.6.21 v0.8.26 v0.10.28
nvm uninstall
$ nvm uninstall [tab][tab]
my_alias default v0.4.11 v0.4.12 v0.6.14
my_alias default v0.6.21 v0.8.26 v0.10.28
## Problems
@@ -164,7 +163,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.5.1/install.sh
[2]: https://github.com/creationix/nvm/blob/v0.8.0/install.sh
[3]: https://travis-ci.org/creationix/nvm
[Urchin]: https://github.com/scraperwiki/urchin

View File

@@ -101,7 +101,7 @@ if [ -z "$PROFILE" ]; then
fi
fi
SOURCE_STR="[ -s \"$NVM_DIR/nvm.sh\" ] && . \"$NVM_DIR/nvm.sh\" # This loads nvm"
SOURCE_STR="\nexport NVM_DIR=\"$NVM_DIR\"\n[ -s \"\$NVM_DIR/nvm.sh\" ] && . \"\$NVM_DIR/nvm.sh\" # This loads nvm"
if [ -z "$PROFILE" ] || [ ! -f "$PROFILE" ] ; then
if [ -z $PROFILE ]; then
@@ -112,15 +112,13 @@ if [ -z "$PROFILE" ] || [ ! -f "$PROFILE" ] ; then
echo "=> Create it (touch $PROFILE) and run this script again"
fi
echo " OR"
echo "=> Append the following line to the correct file yourself:"
echo
echo " $SOURCE_STR"
echo "=> Append the following lines to the correct file yourself:"
echo -e "$SOURCE_STR"
echo
else
if ! grep -qc 'nvm.sh' $PROFILE; then
echo "=> Appending source string to $PROFILE"
echo "" >> "$PROFILE"
echo $SOURCE_STR >> "$PROFILE"
echo -e "$SOURCE_STR" >> "$PROFILE"
else
echo "=> Source string already in $PROFILE"
fi

View File

@@ -5,9 +5,9 @@ DIR="$(command cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
source "$DIR/nvm.sh"
if [ -n "$NODE_VERSION" ]; then
nvm use $NODE_VERSION || (echo "NODE_VERSION not set" && exit 127)
nvm use $NODE_VERSION > /dev/null || (echo "NODE_VERSION not set" >&2 && exit 127)
else
nvm use || (echo "No .nvmrc file found" && exit 127)
nvm use > /dev/null || (echo "No .nvmrc file found" >&2 && exit 127)
fi
exec $@

101
nvm.sh
View File

@@ -97,6 +97,18 @@ nvm_format_version() {
echo "$1" | sed -e 's/^\([0-9]\)/v\1/g'
}
nvm_strip_path() {
echo "$1" | sed -e "s#$NVM_DIR/[^/]*$2[^:]*:##g" -e "s#:$NVM_DIR/[^/]*$2[^:]*##g" -e "s#$NVM_DIR/[^/]*$2[^:]*##g"
}
nvm_prepend_path() {
if [ -z "$1" ]; then
echo "$2"
else
echo "$2:$1"
fi
}
nvm_binary_available() {
# binaries started with node 0.8.6
local MINIMAL="0.8.6"
@@ -118,10 +130,12 @@ nvm_ls() {
fi
# If it looks like an explicit version, don't do anything funny
if [ `expr "$PATTERN" : "v[[:digit:]]*\.[[:digit:]]*\.[[:digit:]]*$"` != 0 ]; then
if [ -d "$NVM_DIR/$PATTERN" ]; then
VERSIONS="$PATTERN"
fi
else
VERSIONS=`find "$NVM_DIR/" -maxdepth 1 -type d -name "$(nvm_format_version $PATTERN)*" -exec basename '{}' ';' \
| 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 | grep -v '^ *\.'`
fi
if [ -z "$VERSIONS" ]; then
echo "N/A"
@@ -167,7 +181,7 @@ nvm_checksum() {
echo 'Checksums empty' #missing in raspberry pi binary
return
else
echo 'Checksums do not match.'
echo 'Checksums do not match.' >&2
return 1
fi
}
@@ -237,6 +251,7 @@ nvm() {
echo " nvm alias <name> <version> Set an alias named <name> pointing to <version>"
echo " nvm unalias <name> Deletes the alias named <name>"
echo " nvm copy-packages <version> Install global NPM packages contained in <version> to current version"
echo " nvm unload Unload NVM from shell"
echo
echo "Example:"
echo " nvm install v0.10.24 Install a specific version number"
@@ -293,7 +308,7 @@ nvm() {
fi
provided_version="$NVM_RC_VERSION"
fi
[ -d "$NVM_DIR/$provided_version" ] && echo "$provided_version is already installed." && return
[ -d "$NVM_DIR/$provided_version" ] && echo "$provided_version is already installed." >&2 && return
VERSION=`nvm_remote_version $provided_version`
ADDITIONAL_PARAMETERS=''
@@ -306,7 +321,16 @@ nvm() {
shift
done
[ -d "$NVM_DIR/$VERSION" ] && echo "$VERSION is already installed." && return
if [ -d "$NVM_DIR/$VERSION" ]; then
echo "$VERSION is already installed." >&2
nvm use "$VERSION"
return $?
fi
if [ "$VERSION" = "N/A" ]; then
echo "Version '$provided_version' not found - try \`nvm ls-remote\` to browse available versions." >&2
return 3
fi
# skip binary install if no binary option specified.
if [ $nobinary -ne 1 ]; then
@@ -371,10 +395,10 @@ nvm() {
if ! nvm_has "npm" ; then
echo "Installing npm..."
if [ "`expr "$VERSION" : '\(^v0\.1\.\)'`" != '' ]; then
echo "npm requires node v0.2.3 or higher"
echo "npm requires node v0.2.3 or higher" >&2
elif [ "`expr "$VERSION" : '\(^v0\.2\.\)'`" != '' ]; then
if [ "`expr "$VERSION" : '\(^v0\.2\.[0-2]$\)'`" != '' ]; then
echo "npm requires node v0.2.3 or higher"
echo "npm requires node v0.2.3 or higher" >&2
else
curl https://npmjs.org/install.sh | clean=yes npm_install=0.2.19 sh
fi
@@ -383,7 +407,7 @@ nvm() {
fi
fi
else
echo "nvm: install $VERSION failed!"
echo "nvm: install $VERSION failed!" >&2
return 1
fi
;;
@@ -391,12 +415,12 @@ nvm() {
[ $# -ne 2 ] && nvm help && return
PATTERN=`nvm_format_version $2`
if [ "$PATTERN" = `nvm_version` ]; then
echo "nvm: Cannot uninstall currently-active node version, $PATTERN."
echo "nvm: Cannot uninstall currently-active node version, $PATTERN." >&2
return 1
fi
VERSION=`nvm_version $PATTERN`
if [ ! -d $NVM_DIR/$VERSION ]; then
echo "$VERSION version is not installed..."
echo "$VERSION version is not installed..." >&2
return;
fi
@@ -419,23 +443,23 @@ nvm() {
;;
"deactivate" )
if [ `expr "$PATH" : ".*$NVM_DIR/.*/bin.*"` != 0 ] ; then
export PATH=${PATH%$NVM_DIR/*/bin*}${PATH#*$NVM_DIR/*/bin:}
export PATH=`nvm_strip_path "$PATH" "/bin"`
hash -r
echo "$NVM_DIR/*/bin removed from \$PATH"
else
echo "Could not find $NVM_DIR/*/bin in \$PATH"
echo "Could not find $NVM_DIR/*/bin in \$PATH" >&2
fi
if [ `expr "$MANPATH" : ".*$NVM_DIR/.*/share/man.*"` != 0 ] ; then
export MANPATH=${MANPATH%$NVM_DIR/*/share/man*}${MANPATH#*$NVM_DIR/*/share/man:}
export MANPATH=`nvm_strip_path "$MANPATH" "/share/man"`
echo "$NVM_DIR/*/share/man removed from \$MANPATH"
else
echo "Could not find $NVM_DIR/*/share/man in \$MANPATH"
echo "Could not find $NVM_DIR/*/share/man in \$MANPATH" >&2
fi
if [ `expr "$NODE_PATH" : ".*$NVM_DIR/.*/lib/node_modules.*"` != 0 ] ; then
export NODE_PATH=${NODE_PATH%$NVM_DIR/*/lib/node_modules*}${NODE_PATH#*$NVM_DIR/*/lib/node_modules:}
export NODE_PATH=`nvm_strip_path "$NODE_PATH" "/lib/node_modules"`
echo "$NVM_DIR/*/lib/node_modules removed from \$NODE_PATH"
else
echo "Could not find $NVM_DIR/*/lib/node_modules in \$NODE_PATH"
echo "Could not find $NVM_DIR/*/lib/node_modules in \$NODE_PATH" >&2
fi
;;
"use" )
@@ -459,28 +483,24 @@ nvm() {
VERSION=`nvm_version $2`
fi
if [ ! -d "$NVM_DIR/$VERSION" ]; then
echo "$VERSION version is not installed yet"
echo "$VERSION version is not installed yet" >&2
return 1
fi
if [ `expr "$PATH" : ".*$NVM_DIR/.*/bin"` != 0 ]; then
PATH=${PATH%$NVM_DIR/*/bin*}$NVM_DIR/$VERSION/bin${PATH#*$NVM_DIR/*/bin}
else
PATH="$NVM_DIR/$VERSION/bin:$PATH"
fi
# Strip other version from PATH
PATH=`nvm_strip_path "$PATH" "/bin"`
# Prepend current version
PATH=`nvm_prepend_path "$PATH" "$NVM_DIR/$VERSION/bin"`
if [ -z "$MANPATH" ]; then
MANPATH=$(manpath)
fi
MANPATH=${MANPATH#*$NVM_DIR/*/man:}
if [ `expr "$MANPATH" : ".*$NVM_DIR/.*/share/man"` != 0 ]; then
MANPATH=${MANPATH%$NVM_DIR/*/share/man*}$NVM_DIR/$VERSION/share/man${MANPATH#*$NVM_DIR/*/share/man}
else
MANPATH="$NVM_DIR/$VERSION/share/man:$MANPATH"
fi
if [ `expr "$NODE_PATH" : ".*$NVM_DIR/.*/lib/node_modules.*"` != 0 ]; then
NODE_PATH=${NODE_PATH%$NVM_DIR/*/lib/node_modules*}$NVM_DIR/$VERSION/lib/node_modules${NODE_PATH#*$NVM_DIR/*/lib/node_modules}
else
NODE_PATH="$NVM_DIR/$VERSION/lib/node_modules:$NODE_PATH"
fi
# Strip other version from MANPATH
MANPATH=`nvm_strip_path "$MANPATH" "/share/man"`
# Prepend current version
MANPATH=`nvm_prepend_path "$MANPATH" "$NVM_DIR/$VERSION/share/man"`
# Strip other version from NODE_PATH
NODE_PATH=`nvm_strip_path "$NODE_PATH" "/lib/node_modules"`
# Prepend current version
NODE_PATH=`nvm_prepend_path "$NODE_PATH" "$NVM_DIR/$VERSION/lib/node_modules"`
export PATH
hash -r
export MANPATH
@@ -522,14 +542,11 @@ nvm() {
fi
if [ ! -d "$NVM_DIR/$VERSION" ]; then
echo "$VERSION version is not installed yet"
echo "$VERSION version is not installed yet" >&2
return;
fi
if [ `expr "$NODE_PATH" : ".*$NVM_DIR/.*/lib/node_modules.*"` != 0 ]; then
RUN_NODE_PATH=${NODE_PATH%$NVM_DIR/*/lib/node_modules*}$NVM_DIR/$VERSION/lib/node_modules${NODE_PATH#*$NVM_DIR/*/lib/node_modules}
else
RUN_NODE_PATH="$NVM_DIR/$VERSION/lib/node_modules:$NODE_PATH"
fi
RUN_NODE_PATH=`nvm_strip_path "$NODE_PATH" "/lib/node_modules"`
RUN_NODE_PATH=`nvm_prepend_path "$NODE_PATH" "$NVM_DIR/$VERSION/lib/node_modules"`
echo "Running node $VERSION"
NODE_PATH=$RUN_NODE_PATH $NVM_DIR/$VERSION/bin/node "$@"
;;
@@ -584,7 +601,7 @@ nvm() {
"unalias" )
mkdir -p $NVM_DIR/alias
[ $# -ne 2 ] && nvm help && return 127
[ ! -f "$NVM_DIR/alias/$2" ] && echo "Alias $2 doesn't exist!" && return
[ ! -f "$NVM_DIR/alias/$2" ] && echo "Alias $2 doesn't exist!" >&2 && return
rm -f $NVM_DIR/alias/$2
echo "Deleted alias $2"
;;
@@ -611,7 +628,11 @@ nvm() {
nvm_version $2
;;
"--version" )
echo "nvm v0.5.1"
echo "0.8.0"
;;
"unload" )
unset -f nvm nvm_print_versions nvm_checksum nvm_ls_remote nvm_ls nvm_remote_version nvm_version nvm_rc_version > /dev/null 2>&1
unset RC_VERSION NVM_NODEJS_ORG_MIRROR NVM_DIR NVM_CD_FLAGS > /dev/null 2>&1
;;
* )
nvm help

View File

@@ -1,6 +1,6 @@
{
"name": "nvm",
"version": "0.5.1",
"version": "0.8.0",
"description": "Node Version Manager - Simple bash script to manage multiple active node.js versions",
"directories": {
"test": "test"

View File

@@ -0,0 +1,9 @@
#!/bin/sh
mkdir ../../../v0.1.3
mkdir ../../../v0.2.3
. ../../../nvm.sh
[ -z `nvm ls | grep '^ *\.'` ]
# The result should contain only the appropriate version numbers.

View File

@@ -0,0 +1,10 @@
#!/bin/sh
mkdir ../../../v0.1.2
. ../../../nvm.sh
nvm ls v0.1 | grep v0.1.2 &&
nvm ls v0.1.2 | grep v0.1.2 &&
nvm ls v0.1. | grep N/A &&
nvm ls v0.1.1 | grep N/A

View File

@@ -8,7 +8,7 @@ die () { echo $@ ; exit 1; }
. ../../nvm.sh
nvm use v0.2.3 &&
[ `expr $PATH : ".*v0.2.3/.*/bin"` != 0 ] || die "Failed to activate v0.2.3"
[ `expr $PATH : ".*v0.2.3/.*/bin"` != 0 ] && [ `expr $NODE_PATH : ".*v0.2.3/.*/lib/node_modules"` != 0 ] || die "Failed to activate v0.2.3"
nvm deactivate &&
[ `expr $PATH : ".*v0.2.3/.*/bin"` = 0 ] || die "Failed to deactivate v0.2.3"
[ `expr $PATH : ".*v0.2.3/.*/bin"` = 0 ] && [ `expr $NODE_PATH : ".*v0.2.3/.*/lib/node_modules"` = 0 ] || die "Failed to deactivate v0.2.3"

View File

@@ -0,0 +1,7 @@
#!/bin/sh
die () { echo $@ ; exit 1; }
. ../../nvm.sh
[ "$(nvm install invalid.invalid 2>&1)" = "Version 'invalid.invalid' not found - try \`nvm ls-remote\` to browse available versions." ] || die "nvm installing an invalid version did not print a nice error message"

View File

@@ -0,0 +1,12 @@
#!/bin/sh
fail () { echo $@ ; exit 1; }
. ../../nvm.sh
type nvm > /dev/null 2>&1 || fail "NVM not loaded"
nvm unload
type nvm > /dev/null 2>&1 && fail "NVM not unloaded" || exit 0

View File

@@ -0,0 +1,18 @@
#!/bin/sh
die () { echo $@ ; exit 1; }
. ../../../nvm.sh
TEST_PATH=/usr/bin:/usr/local/bin
NEW_PATH=`nvm_prepend_path "$TEST_PATH" "$NVM_DIR/v0.2.5/bin"`
[ "$NEW_PATH" = "$NVM_DIR/v0.2.5/bin:/usr/bin:/usr/local/bin" ] || die "Not correctly prepended: $NEW_PATH "
EMPTY_PATH=
NEW_PATH=`nvm_prepend_path "$EMPTY_PATH" "$NVM_DIR/v0.2.5/bin"`
[ "$NEW_PATH" = "$NVM_DIR/v0.2.5/bin" ] || die "Not correctly prepended: $NEW_PATH "

View File

@@ -0,0 +1,11 @@
#!/bin/sh
die () { echo $@ ; exit 1; }
. ../../../nvm.sh
TEST_PATH=$NVM_DIR/v0.10.5/bin:/usr/bin:$NVM_DIR/v0.11.5/bin:$NVM_DIR/v0.9.5/bin:/usr/local/bin:$NVM_DIR/v0.2.5/bin
STRIPPED_PATH=`nvm_strip_path "$TEST_PATH" "/bin"`
[ "$STRIPPED_PATH" = "/usr/bin:/usr/local/bin" ] || die "Not correctly stripped: $STRIPPED_PATH "

View File

@@ -0,0 +1,24 @@
#!/bin/sh
die () { echo $@ ; exit 1; }
. ../../../nvm.sh
[ "$(nvm install invalid.invalid 2>&1)" = "Version 'invalid.invalid' not found - try \`nvm ls-remote\` to browse available versions." ] || die "nvm installing an invalid version did not print a nice error message"
# Remove the stuff we're clobbering.
[ -e ../../../v0.9.7 ] && rm -R ../../../v0.9.7
[ -e ../../../v0.9.12 ] && rm -R ../../../v0.9.12
# Install from binary
nvm install 0.9.7
nvm install 0.9.12
nvm use 0.9.7
node --version | grep v0.9.7 || die "precondition failed: node doesn't start at 0.9.7"
nvm install 0.9.12
node --version | grep v0.9.12 || die "nvm install on already installed version doesn't use it"