Compare commits
344 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
f9769e40dd | ||
|
|
9c44a3e4c7 | ||
|
|
5048a78376 | ||
|
|
fd9e01b7e6 | ||
|
|
5c7f08843d | ||
|
|
6e6c5c4e2a | ||
|
|
1c2c4788a2 | ||
|
|
b59ecb9e11 | ||
|
|
7551746e55 | ||
|
|
70ac1e7fa4 | ||
|
|
f130d02efc | ||
|
|
150aea21ec | ||
|
|
273f9d497a | ||
|
|
1c85068091 | ||
|
|
42786630a1 | ||
|
|
938feca6a9 | ||
|
|
3747735980 | ||
|
|
5dd2d7e5d4 | ||
|
|
65c2435418 | ||
|
|
0a695c5d2a | ||
|
|
8fe677a644 | ||
|
|
213ff003d0 | ||
|
|
986abbf5db | ||
|
|
a2da9abd6d | ||
|
|
9068dda110 | ||
|
|
6baa9a0918 | ||
|
|
b8fe75e93a | ||
|
|
78a5e3fadf | ||
|
|
5e54886cbc | ||
|
|
d7849054f8 | ||
|
|
708ac80a55 | ||
|
|
d341d5e535 | ||
|
|
eef12cc2b3 | ||
|
|
99c8b59a14 | ||
|
|
abdc3f3c21 | ||
|
|
401ac45568 | ||
|
|
61709c1f97 | ||
|
|
1a8479ed31 | ||
|
|
a703d3591f | ||
|
|
1fa2acf5a7 | ||
|
|
d5c0e94166 | ||
|
|
6dc602b521 | ||
|
|
1d37af162a | ||
|
|
781373f7ce | ||
|
|
68574cc7e8 | ||
|
|
0f3b06320e | ||
|
|
d181abb628 | ||
|
|
f5643dc7ea | ||
|
|
6bcac7f638 | ||
|
|
ad71389dcc | ||
|
|
8cbf149558 | ||
|
|
e7ada80d08 | ||
|
|
9912f7cc46 | ||
|
|
6e02e5a54c | ||
|
|
42b010775b | ||
|
|
1c50c5c7aa | ||
|
|
200a9aa97e | ||
|
|
4512337c11 | ||
|
|
55677dba4a | ||
|
|
ca43ca21f5 | ||
|
|
fafbeb8c59 | ||
|
|
d67f2b110d | ||
|
|
9c2127ce33 | ||
|
|
423629c38b | ||
|
|
5ec0ccec1b | ||
|
|
7a423b7bb4 | ||
|
|
a3de7f3222 | ||
|
|
55d892adc8 | ||
|
|
3b42df8d1d | ||
|
|
21fa84225c | ||
|
|
4895aebf0a | ||
|
|
8a29122d0a | ||
|
|
26ed7a003a | ||
|
|
00ca5288b0 | ||
|
|
6d2912a2ab | ||
|
|
1d61584402 | ||
|
|
f6974744cd | ||
|
|
7171cbed6f | ||
|
|
8f66273922 | ||
|
|
1a9ab82e24 | ||
|
|
3fa004293c | ||
|
|
83efa2288d | ||
|
|
4cfe62d3d1 | ||
|
|
802f064178 | ||
|
|
c49cb68575 | ||
|
|
0534872e0f | ||
|
|
f1b8cf8fd6 | ||
|
|
78ff9a2215 | ||
|
|
b952be6f56 | ||
|
|
638ae5c6fa | ||
|
|
a7b6495172 | ||
|
|
703e43cc2b | ||
|
|
03636878d1 | ||
|
|
2ee4b6f414 | ||
|
|
10305f0791 | ||
|
|
276c031c60 | ||
|
|
63f72b37df | ||
|
|
cf5bfecec4 | ||
|
|
77c3f20956 | ||
|
|
e4ada9fa43 | ||
|
|
a0de15d0f7 | ||
|
|
df4689fbd2 | ||
|
|
018e47bec0 | ||
|
|
74cc1eb022 | ||
|
|
eda8ffbcc4 | ||
|
|
b9383c9016 | ||
|
|
25c0be1e20 | ||
|
|
a8233eb68c | ||
|
|
ea198c9a19 | ||
|
|
e0537ce3df | ||
|
|
cce5df35ba | ||
|
|
7e269961c3 | ||
|
|
f214ffaf1f | ||
|
|
d016fe010a | ||
|
|
fb5a51b1b7 | ||
|
|
3e5037a1be | ||
|
|
60fec40613 | ||
|
|
fb215546ee | ||
|
|
4b593bcda2 | ||
|
|
8349f0ff48 | ||
|
|
bb250b5730 | ||
|
|
b6f1c156da | ||
|
|
4c9a36e9ad | ||
|
|
bb01513eba | ||
|
|
ba7f27dead | ||
|
|
79ec957ee7 | ||
|
|
d8b55652a5 | ||
|
|
4c38f507f5 | ||
|
|
f213167ef0 | ||
|
|
1da31aa425 | ||
|
|
519a9481e6 | ||
|
|
b16bf303ca | ||
|
|
9a28706688 | ||
|
|
a318ddf9b3 | ||
|
|
8dbbc32905 | ||
|
|
de03007348 | ||
|
|
1b22c2e2b1 | ||
|
|
0e1f2408c9 | ||
|
|
931cc45fc3 | ||
|
|
085e314a3f | ||
|
|
6aa45732d8 | ||
|
|
16c0be8314 | ||
|
|
578a601b27 | ||
|
|
896aa7c436 | ||
|
|
2441b00262 | ||
|
|
88595f09aa | ||
|
|
5925bd5e37 | ||
|
|
24e22dd8bc | ||
|
|
61de5f9ca3 | ||
|
|
4de9eff55c | ||
|
|
7e20a77c89 | ||
|
|
8fbbeb8fc5 | ||
|
|
79203ba5d0 | ||
|
|
2e3e48cc06 | ||
|
|
db8acf11fd | ||
|
|
a6be718387 | ||
|
|
e2c4c88136 | ||
|
|
4cd0b078d0 | ||
|
|
f6ba08253b | ||
|
|
0ecb2879b9 | ||
|
|
e3b84499c2 | ||
|
|
b313f62749 | ||
|
|
7f3a794d89 | ||
|
|
ba1be9b4ea | ||
|
|
652a9ef9b5 | ||
|
|
0d81a219ae | ||
|
|
d6e457354f | ||
|
|
6668dc5c47 | ||
|
|
3d9c1d7852 | ||
|
|
29f582611b | ||
|
|
673cda56c4 | ||
|
|
e562a5645b | ||
|
|
c0c5e8d7ef | ||
|
|
f00d688c87 | ||
|
|
5aa78f21cf | ||
|
|
4a7275a0c6 | ||
|
|
c77be55cdc | ||
|
|
e195fccdb7 | ||
|
|
87516039a8 | ||
|
|
80e349edb1 | ||
|
|
038c1f3d0f | ||
|
|
66455f7c77 | ||
|
|
a69eae10e3 | ||
|
|
13b87449e8 | ||
|
|
222250f2d1 | ||
|
|
77f4490391 | ||
|
|
0871131dfd | ||
|
|
e6bd207624 | ||
|
|
bad79e6d77 | ||
|
|
d07fa2db10 | ||
|
|
20953ab04c | ||
|
|
4cf940153c | ||
|
|
47bbf93f50 | ||
|
|
7976a1343f | ||
|
|
bf8abf1052 | ||
|
|
eb6031cb58 | ||
|
|
55a6f1f06e | ||
|
|
c188c1b11a | ||
|
|
b15ea07067 | ||
|
|
752c0e4ef1 | ||
|
|
49364532b3 | ||
|
|
9157cb4cfe | ||
|
|
6dde4aac38 | ||
|
|
96635cd2bd | ||
|
|
5342b6a04c | ||
|
|
2d0c025c49 | ||
|
|
6ed93f4c01 | ||
|
|
3c2719a85e | ||
|
|
c47f03f996 | ||
|
|
300022642a | ||
|
|
bce3abaa4b | ||
|
|
9f6280265a | ||
|
|
7211c9ee29 | ||
|
|
246caa8581 | ||
|
|
1fac49f887 | ||
|
|
d2422a623a | ||
|
|
fcc00b22b7 | ||
|
|
0787a55999 | ||
|
|
7c45d62b37 | ||
|
|
703acb0514 | ||
|
|
744507b83e | ||
|
|
ec7909dcd3 | ||
|
|
cf5f195d75 | ||
|
|
9f0520cdd0 | ||
|
|
d950c1a0ea | ||
|
|
6123fbcd31 | ||
|
|
def7ec5364 | ||
|
|
52a384a0cc | ||
|
|
ba1e2f1cdf | ||
|
|
625e54880f | ||
|
|
cebda7d35a | ||
|
|
4a9a15c404 | ||
|
|
31c5406780 | ||
|
|
a34c080d77 | ||
|
|
0b97ee1d2a | ||
|
|
1ded21c10d | ||
|
|
e30424d22f | ||
|
|
78e7aa6b67 | ||
|
|
ae4c841742 | ||
|
|
4f9324c439 | ||
|
|
020f61500f | ||
|
|
38a0c997e2 | ||
|
|
70f1734c12 | ||
|
|
1d40a5bc8b | ||
|
|
db4c582d79 | ||
|
|
e46ee7b30b | ||
|
|
f82f38be90 | ||
|
|
3a21485050 | ||
|
|
e6887d500f | ||
|
|
472d23b990 | ||
|
|
1a19de9d20 | ||
|
|
f3d1770e3e | ||
|
|
ba2a850253 | ||
|
|
618a372f38 | ||
|
|
a09a028c38 | ||
|
|
d78905988e | ||
|
|
8cceae3cc1 | ||
|
|
192e381971 | ||
|
|
966ff0e1b0 | ||
|
|
b90a0a811e | ||
|
|
25ca41c9dc | ||
|
|
0d44ed1126 | ||
|
|
dc53a37d4f | ||
|
|
332ae1afcb | ||
|
|
9108a7f7fa | ||
|
|
3b21b76106 | ||
|
|
dcba513108 | ||
|
|
e6a5374bfb | ||
|
|
8cba9c5781 | ||
|
|
1d6145de5a | ||
|
|
ca0c8a7f1d | ||
|
|
21771e7369 | ||
|
|
a3331ffdb0 | ||
|
|
4a5f5203d0 | ||
|
|
ee6d4ab074 | ||
|
|
8925419e90 | ||
|
|
0f709eafa0 | ||
|
|
a9be598241 | ||
|
|
9a0c269713 | ||
|
|
0c8410fcc3 | ||
|
|
12d7b6fa0c | ||
|
|
274652e10e | ||
|
|
2e9558cbf9 | ||
|
|
13781f242b | ||
|
|
b6469ee186 | ||
|
|
304cc29cf0 | ||
|
|
0d5ee024d1 | ||
|
|
9a88e3656c | ||
|
|
c19535a3f5 | ||
|
|
9af7409e4a | ||
|
|
eca6118023 | ||
|
|
50485d641b | ||
|
|
cd378cb170 | ||
|
|
db7e0976f2 | ||
|
|
ecb7a15baa | ||
|
|
5f225cd625 | ||
|
|
8599ea29f9 | ||
|
|
b1d0cfa77b | ||
|
|
a0a2ee4414 | ||
|
|
60e66fa7be | ||
|
|
45eff43cd0 | ||
|
|
eb588566f2 | ||
|
|
17daa68a35 | ||
|
|
47c87b8478 | ||
|
|
58dafdaedd | ||
|
|
4d2faba9af | ||
|
|
bc4c5644f5 | ||
|
|
950da2b836 | ||
|
|
2459843b92 | ||
|
|
58033251fd | ||
|
|
8df2dd2ba8 | ||
|
|
591a3bb19d | ||
|
|
679c71650f | ||
|
|
5c7996da5b | ||
|
|
9021cf579a | ||
|
|
7afe2c5e2d | ||
|
|
8143f5a618 | ||
|
|
c211357e70 | ||
|
|
3eb09ab984 | ||
|
|
670870e211 | ||
|
|
74ca011704 | ||
|
|
83c5b6286d | ||
|
|
d7015c7f65 | ||
|
|
4ca71d81cf | ||
|
|
ed69b5cc71 | ||
|
|
f9d5a85f05 | ||
|
|
1f3ea299fa | ||
|
|
b2ef0cb14c | ||
|
|
59c4dc735a | ||
|
|
ce7d2e7618 | ||
|
|
4df45ac51a | ||
|
|
8573b95a2d | ||
|
|
94fff5c923 | ||
|
|
56e32888ea | ||
|
|
b186b6327a | ||
|
|
e99fc43ab2 | ||
|
|
cf515c4ff8 | ||
|
|
037f52a55b | ||
|
|
b714db7a95 | ||
|
|
aba4346a86 | ||
|
|
dc7a42062e | ||
|
|
dd157129a6 | ||
|
|
2eddca3d9f | ||
|
|
6a6e435855 |
6
.gitignore
vendored
6
.gitignore
vendored
@@ -4,7 +4,11 @@ v*
|
|||||||
alias
|
alias
|
||||||
|
|
||||||
# For testing
|
# For testing
|
||||||
bak
|
test/bak
|
||||||
.urchin.log
|
.urchin.log
|
||||||
|
.urchin_stdout
|
||||||
|
|
||||||
|
node_modules/
|
||||||
|
|
||||||
.DS_Store
|
.DS_Store
|
||||||
|
current
|
||||||
|
|||||||
@@ -1,3 +1,4 @@
|
|||||||
src
|
src
|
||||||
v*
|
v*
|
||||||
alias
|
alias
|
||||||
|
|
||||||
|
|||||||
29
.travis.yml
Normal file
29
.travis.yml
Normal file
@@ -0,0 +1,29 @@
|
|||||||
|
language: c # defaults to ruby
|
||||||
|
install:
|
||||||
|
- sudo apt-get install ksh zsh -y
|
||||||
|
- '[ -z "$WITHOUT_CURL" ] || sudo apt-get remove curl -y'
|
||||||
|
before_script:
|
||||||
|
- '[ -n "$WITHOUT_CURL" ] || curl -o /tmp/urchin https://raw.githubusercontent.com/scraperwiki/urchin/master/urchin'
|
||||||
|
- '[ -z "$WITHOUT_CURL" ] || wget -O /tmp/urchin https://raw.githubusercontent.com/scraperwiki/urchin/master/urchin'
|
||||||
|
- chmod +x /tmp/urchin
|
||||||
|
script:
|
||||||
|
- NVM_DIR=$TRAVIS_BUILD_DIR make TEST_SUITE=$TEST_SUITE URCHIN=/tmp/urchin $SHELL
|
||||||
|
env:
|
||||||
|
- SHELL=sh TEST_SUITE=fast
|
||||||
|
- SHELL=sh TEST_SUITE=fast WITHOUT_CURL=1
|
||||||
|
- SHELL=dash TEST_SUITE=fast
|
||||||
|
- SHELL=dash TEST_SUITE=fast WITHOUT_CURL=1
|
||||||
|
- SHELL=bash TEST_SUITE=fast
|
||||||
|
- SHELL=bash TEST_SUITE=fast WITHOUT_CURL=1
|
||||||
|
- SHELL=zsh TEST_SUITE=fast
|
||||||
|
- SHELL=zsh TEST_SUITE=fast WITHOUT_CURL=1
|
||||||
|
- SHELL=ksh TEST_SUITE=fast
|
||||||
|
- SHELL=ksh TEST_SUITE=fast WITHOUT_CURL=1
|
||||||
|
- SHELL=sh TEST_SUITE=slow
|
||||||
|
- SHELL=sh TEST_SUITE=slow WITHOUT_CURL=1
|
||||||
|
- SHELL=dash TEST_SUITE=slow
|
||||||
|
- SHELL=dash TEST_SUITE=slow WITHOUT_CURL=1
|
||||||
|
- SHELL=bash TEST_SUITE=slow
|
||||||
|
- SHELL=bash TEST_SUITE=slow WITHOUT_CURL=1
|
||||||
|
- SHELL=zsh TEST_SUITE=slow
|
||||||
|
- SHELL=zsh TEST_SUITE=slow WITHOUT_CURL=1
|
||||||
15
CONTRIBUTING.md
Normal file
15
CONTRIBUTING.md
Normal file
@@ -0,0 +1,15 @@
|
|||||||
|
Thanks for contributing to `nvm`!
|
||||||
|
|
||||||
|
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 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.
|
||||||
|
|
||||||
|
Even if you don't have all of these items covered, please still feel free to submit a PR! Someone else may be inspired and volunteer to complete it for you.
|
||||||
|
|
||||||
|
Thanks again!
|
||||||
|
|
||||||
@@ -1,6 +1,6 @@
|
|||||||
The MIT License (MIT)
|
The MIT License (MIT)
|
||||||
|
|
||||||
Copyright (c) 2010-2013 Tim Caswell
|
Copyright (c) 2010-2014 Tim Caswell
|
||||||
|
|
||||||
Permission is hereby granted, free of charge, to any person obtaining a copy of
|
Permission is hereby granted, free of charge, to any person obtaining a copy of
|
||||||
this software and associated documentation files (the "Software"), to deal in
|
this software and associated documentation files (the "Software"), to deal in
|
||||||
|
|||||||
26
Makefile
Normal file
26
Makefile
Normal file
@@ -0,0 +1,26 @@
|
|||||||
|
URCHIN=`which urchin`
|
||||||
|
SHELLS=sh bash dash ksh zsh
|
||||||
|
TEST_SUITE=fast
|
||||||
|
|
||||||
|
.PHONY: $(SHELLS) test verify-tag release
|
||||||
|
|
||||||
|
$(SHELLS):
|
||||||
|
@printf '\n\033[0;34m%s\033[0m\n' "Running tests in $@"
|
||||||
|
@$@ $(URCHIN) -f test/$(TEST_SUITE)
|
||||||
|
|
||||||
|
test: $(SHELLS)
|
||||||
|
@$(URCHIN) -f test/slow
|
||||||
|
|
||||||
|
default: test
|
||||||
|
|
||||||
|
verify-tag:
|
||||||
|
ifndef TAG
|
||||||
|
$(error TAG is undefined)
|
||||||
|
endif
|
||||||
|
|
||||||
|
release: verify-tag
|
||||||
|
@ OLD_TAG=`git describe --abbrev=0 --tags` && \
|
||||||
|
replace "$${OLD_TAG/v/}" "$(TAG)" -- nvm.sh install.sh README.markdown package.json && \
|
||||||
|
git commit -m "v$(TAG)" nvm.sh install.sh README.markdown package.json && \
|
||||||
|
git tag "v$(TAG)"
|
||||||
|
|
||||||
@@ -1,4 +1,4 @@
|
|||||||
# Node Version Manager
|
# Node Version Manager [][3]
|
||||||
|
|
||||||
## Installation
|
## Installation
|
||||||
|
|
||||||
@@ -6,16 +6,19 @@ First you'll need to make sure your system has a c++ compiler. For OSX, XCode w
|
|||||||
|
|
||||||
### Install script
|
### Install script
|
||||||
|
|
||||||
To install you could use the [install script](https://github.com/creationix/nvm/blob/master/install.sh) (requires Git) using cURL:
|
To install you could use the [install script][2] using cURL:
|
||||||
|
|
||||||
curl https://raw.github.com/creationix/nvm/master/install.sh | sh
|
curl https://raw.githubusercontent.com/creationix/nvm/v0.14.0/install.sh | bash
|
||||||
|
|
||||||
or Wget:
|
or Wget:
|
||||||
|
|
||||||
wget -qO- https://raw.github.com/creationix/nvm/master/install.sh | sh
|
wget -qO- https://raw.githubusercontent.com/creationix/nvm/v0.14.0/install.sh | bash
|
||||||
|
|
||||||
<sub>The script clones the nvm repository to `~/.nvm` and adds the source line to your profile (`~/.bash_profile` or `~/.profile`).</sub>
|
<sub>The script clones the nvm repository to `~/.nvm` and adds the source line to your profile (`~/.bash_profile`, `~/.zshrc` or `~/.profile`).</sub>
|
||||||
|
|
||||||
|
You can customize the install source, directory and profile using the `NVM_SOURCE`, `NVM_DIR` and `PROFILE` variables. Eg: `curl ... | NVM_DIR=/usr/local/nvm bash` for a global install.
|
||||||
|
|
||||||
|
<sub>*NB. The installer can use Git, curl, or wget to download NVM, whatever is available.*</sub>
|
||||||
|
|
||||||
### Manual install
|
### Manual install
|
||||||
|
|
||||||
@@ -25,15 +28,18 @@ Or if you have `git` installed, then just clone it:
|
|||||||
|
|
||||||
git clone https://github.com/creationix/nvm.git ~/.nvm
|
git clone https://github.com/creationix/nvm.git ~/.nvm
|
||||||
|
|
||||||
To activate nvm, you need to source it from your bash shell
|
To activate nvm, you need to source it from your shell:
|
||||||
|
|
||||||
source ~/.nvm/nvm.sh
|
source ~/.nvm/nvm.sh
|
||||||
|
|
||||||
I always add this line to my `~/.bashrc` or `~/.profile` file to have it automatically sourced upon login.
|
I always add this line to my `~/.bashrc`, `~/.profile`, or `~/.zshrc` file to have it automatically sourced upon login.
|
||||||
Often I also put in a line to use a specific version of node.
|
Often I also put in a line to use a specific version of node.
|
||||||
|
|
||||||
## Usage
|
## Usage
|
||||||
|
|
||||||
|
You can create an `.nvmrc` file containing version number in the project root directory (or any parent directory).
|
||||||
|
`nvm use`, `nvm install`, `nvm exec`, and `nvm run` will all respect an `.nvmrc` file.
|
||||||
|
|
||||||
To download, compile, and install the latest v0.10.x release of node, do this:
|
To download, compile, and install the latest v0.10.x release of node, do this:
|
||||||
|
|
||||||
nvm install 0.10
|
nvm install 0.10
|
||||||
@@ -42,13 +48,13 @@ And then in any new shell just use the installed version:
|
|||||||
|
|
||||||
nvm use 0.10
|
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:
|
Or you can just run it:
|
||||||
|
|
||||||
nvm run 0.10
|
nvm run 0.10 --version
|
||||||
|
|
||||||
|
Or, you can run any arbitrary command in a subshell with the desired version of node:
|
||||||
|
|
||||||
|
nvm exec 0.10 node --version
|
||||||
|
|
||||||
If you want to see what versions are installed:
|
If you want to see what versions are installed:
|
||||||
|
|
||||||
@@ -66,12 +72,19 @@ To set a default Node version to be used in any new shell, use the alias 'defaul
|
|||||||
|
|
||||||
nvm alias default 0.10
|
nvm alias default 0.10
|
||||||
|
|
||||||
|
To use a mirror of the node binaries, set `$NVM_NODEJS_ORG_MIRROR`:
|
||||||
|
|
||||||
|
export NVM_NODEJS_ORG_MIRROR=http://nodejs.org/dist
|
||||||
|
nvm install 0.10
|
||||||
|
|
||||||
|
NVM_NODEJS_ORG_MIRROR=http://nodejs.org/dist nvm install 0.10
|
||||||
|
|
||||||
## License
|
## License
|
||||||
|
|
||||||
nvm is released under the MIT license.
|
nvm is released under the MIT license.
|
||||||
|
|
||||||
|
|
||||||
Copyright (C) 2010-2013 Tim Caswell
|
Copyright (C) 2010-2014 Tim Caswell
|
||||||
|
|
||||||
Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
|
Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
|
||||||
|
|
||||||
@@ -80,27 +93,24 @@ The above copyright notice and this permission notice shall be included in all c
|
|||||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||||
|
|
||||||
## Running tests
|
## Running tests
|
||||||
Tests are written in [Urchin](https://github.com/scraperwiki/urchin). Install Urchin like so.
|
Tests are written in [Urchin]. Install Urchin (and other dependencies) like so:
|
||||||
|
|
||||||
wget -O /usr/local/bin https://raw.github.com/scraperwiki/urchin/0c6837cfbdd0963903bf0463b05160c2aecc22ef/urchin
|
npm install
|
||||||
chmod +x /usr/local/bin/urchin
|
|
||||||
|
|
||||||
(Or put it some other place in your PATH.)
|
|
||||||
|
|
||||||
There are slow tests and fast tests. The slow tests do things like install node
|
There are slow tests and fast tests. The slow tests do things like install node
|
||||||
and check that the right versions are used. The fast tests fake this to test
|
and check that the right versions are used. The fast tests fake this to test
|
||||||
things like aliases and uninstalling. From the root of the nvm git repository,
|
things like aliases and uninstalling. From the root of the nvm git repository,
|
||||||
run the fast tests like this.
|
run the fast tests like this.
|
||||||
|
|
||||||
urchin test/fast
|
npm run test/fast
|
||||||
|
|
||||||
Run the slow tests like this.
|
Run the slow tests like this.
|
||||||
|
|
||||||
urchin test/slow
|
npm run test/slow
|
||||||
|
|
||||||
Run all of the tests like this
|
Run all of the tests like this
|
||||||
|
|
||||||
urchin test
|
npm test
|
||||||
|
|
||||||
Nota bene: Avoid running nvm while the tests are running.
|
Nota bene: Avoid running nvm while the tests are running.
|
||||||
|
|
||||||
@@ -126,17 +136,17 @@ nvm alias
|
|||||||
default
|
default
|
||||||
|
|
||||||
$ nvm alias my_alias [tab][tab]
|
$ 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
|
||||||
|
|
||||||
$ nvm use [tab][tab]
|
$ 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
|
||||||
|
|
||||||
$ nvm uninstall [tab][tab]
|
$ 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
|
## Problems
|
||||||
|
|
||||||
@@ -156,3 +166,8 @@ After the v0.8.6 release of node, nvm tries to install from binary packages. But
|
|||||||
|
|
||||||
nvm install -s 0.8.6
|
nvm install -s 0.8.6
|
||||||
|
|
||||||
|
[1]: https://github.com/creationix/nvm.git
|
||||||
|
[2]: https://github.com/creationix/nvm/blob/v0.14.0/install.sh
|
||||||
|
[3]: https://travis-ci.org/creationix/nvm
|
||||||
|
[Urchin]: https://github.com/scraperwiki/urchin
|
||||||
|
|
||||||
|
|||||||
@@ -87,3 +87,4 @@ if [[ -n ${ZSH_VERSION-} ]]; then
|
|||||||
fi
|
fi
|
||||||
|
|
||||||
complete -o default -o nospace -F __nvm nvm
|
complete -o default -o nospace -F __nvm nvm
|
||||||
|
|
||||||
|
|||||||
@@ -1,59 +0,0 @@
|
|||||||
#!/bin/bash
|
|
||||||
|
|
||||||
function fatalExit (){
|
|
||||||
echo "$@" && exit 1;
|
|
||||||
}
|
|
||||||
|
|
||||||
# an alternative URL that could be used: https://github.com/creationix/nvm/tarball/master
|
|
||||||
if [ "$NVM_SOURCE" == "" ]; then
|
|
||||||
NVM_SOURCE="https://raw.github.com/creationix/nvm/master/nvm.sh"
|
|
||||||
fi
|
|
||||||
|
|
||||||
if [ "$NVM_DIR" == "" ]; then
|
|
||||||
NVM_DIR="$HOME/.nvm"
|
|
||||||
fi
|
|
||||||
|
|
||||||
# Downloading to $NVM_DIR
|
|
||||||
mkdir -p "$NVM_DIR"
|
|
||||||
pushd "$NVM_DIR" > /dev/null
|
|
||||||
echo -ne "=> Downloading... "
|
|
||||||
curl --silent "$NVM_SOURCE" -o nvm.sh || fatalExit "Failed";
|
|
||||||
echo "Downloaded"
|
|
||||||
popd > /dev/null
|
|
||||||
|
|
||||||
# Detect profile file, .bash_profile has precedence over .profile
|
|
||||||
if [ ! -z "$1" ]; then
|
|
||||||
PROFILE="$1"
|
|
||||||
else
|
|
||||||
if [ -f "$HOME/.bash_profile" ]; then
|
|
||||||
PROFILE="$HOME/.bash_profile"
|
|
||||||
elif [ -f "$HOME/.profile" ]; then
|
|
||||||
PROFILE="$HOME/.profile"
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
|
|
||||||
SOURCE_STR="[[ -s "$NVM_DIR/nvm.sh" ]] && . "$NVM_DIR/nvm.sh" # This loads NVM"
|
|
||||||
|
|
||||||
if [ -z "$PROFILE" ] || [ ! -f "$PROFILE" ] ; then
|
|
||||||
if [ -z $PROFILE ]; then
|
|
||||||
echo "=> Profile not found"
|
|
||||||
else
|
|
||||||
echo "=> Profile $PROFILE not found"
|
|
||||||
fi
|
|
||||||
echo "=> Append the following line to the correct file yourself"
|
|
||||||
echo
|
|
||||||
echo "\t$SOURCE_STR"
|
|
||||||
echo
|
|
||||||
echo "=> Close and reopen your terminal to start using NVM"
|
|
||||||
exit
|
|
||||||
fi
|
|
||||||
|
|
||||||
if ! grep -qc 'nvm.sh' $PROFILE; then
|
|
||||||
echo "=> Appending source string to $PROFILE"
|
|
||||||
echo "" >> "$PROFILE"
|
|
||||||
echo $SOURCE_STR >> "$PROFILE"
|
|
||||||
else
|
|
||||||
echo "=> Source string already in $PROFILE"
|
|
||||||
fi
|
|
||||||
|
|
||||||
echo "=> Close and reopen your terminal to start using NVM"
|
|
||||||
148
install.sh
148
install.sh
@@ -1,65 +1,131 @@
|
|||||||
#!/bin/bash
|
#!/bin/bash
|
||||||
|
|
||||||
NVM_DIR="$HOME/.nvm"
|
set -e
|
||||||
|
|
||||||
if ! hash git 2>/dev/null; then
|
nvm_has() {
|
||||||
echo >&2 "You need to install git - visit http://git-scm.com/downloads"
|
type "$1" > /dev/null 2>&1
|
||||||
echo >&2 "or, use install-gitless.sh instead."
|
return $?
|
||||||
exit 1
|
}
|
||||||
|
|
||||||
|
if [ -z "$NVM_DIR" ]; then
|
||||||
|
NVM_DIR="$HOME/.nvm"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
if [ -d "$NVM_DIR" ]; then
|
nvm_download() {
|
||||||
echo "=> NVM is already installed in $NVM_DIR, trying to update"
|
if nvm_has "curl"; then
|
||||||
echo -ne "\r=> "
|
curl $*
|
||||||
cd $NVM_DIR && git pull
|
elif nvm_has "wget"; then
|
||||||
|
# Emulate curl with wget
|
||||||
|
ARGS=$(echo "$*" | sed -e 's/--progress-bar /--progress=bar /' \
|
||||||
|
-e 's/-L //' \
|
||||||
|
-e 's/-I /--server-response /' \
|
||||||
|
-e 's/-s /-q /' \
|
||||||
|
-e 's/-o /-O /' \
|
||||||
|
-e 's/-C - /-c /')
|
||||||
|
wget $ARGS
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
install_nvm_from_git() {
|
||||||
|
if [ -z "$NVM_SOURCE" ]; then
|
||||||
|
NVM_SOURCE="https://github.com/creationix/nvm.git"
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ -d "$NVM_DIR/.git" ]; then
|
||||||
|
echo "=> nvm is already installed in $NVM_DIR, trying to update"
|
||||||
|
printf "\r=> "
|
||||||
|
cd "$NVM_DIR" && (git fetch 2> /dev/null || {
|
||||||
|
echo >&2 "Failed to update nvm, run 'git fetch' in $NVM_DIR yourself." && exit 1
|
||||||
|
})
|
||||||
|
else
|
||||||
|
# Cloning to $NVM_DIR
|
||||||
|
echo "=> Downloading nvm from git to '$NVM_DIR'"
|
||||||
|
printf "\r=> "
|
||||||
|
mkdir -p "$NVM_DIR"
|
||||||
|
git clone "$NVM_SOURCE" "$NVM_DIR"
|
||||||
|
fi
|
||||||
|
cd $NVM_DIR && git checkout v0.14.0 && git branch -D master || true
|
||||||
|
}
|
||||||
|
|
||||||
|
install_nvm_as_script() {
|
||||||
|
if [ -z "$NVM_SOURCE" ]; then
|
||||||
|
NVM_SOURCE="https://raw.githubusercontent.com/creationix/nvm/v0.14.0/nvm.sh"
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Downloading to $NVM_DIR
|
||||||
|
mkdir -p "$NVM_DIR"
|
||||||
|
if [ -d "$NVM_DIR/nvm.sh" ]; then
|
||||||
|
echo "=> nvm is already installed in $NVM_DIR, trying to update"
|
||||||
|
else
|
||||||
|
echo "=> Downloading nvm as script to '$NVM_DIR'"
|
||||||
|
fi
|
||||||
|
nvm_download -s "$NVM_SOURCE" -o "$NVM_DIR/nvm.sh" || {
|
||||||
|
echo >&2 "Failed to download '$NVM_SOURCE'.."
|
||||||
|
return 1
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if [ -z "$METHOD" ]; then
|
||||||
|
# Autodetect install method
|
||||||
|
if nvm_has "git"; then
|
||||||
|
install_nvm_from_git
|
||||||
|
elif nvm_has "nvm_download"; then
|
||||||
|
install_nvm_as_script
|
||||||
|
else
|
||||||
|
echo >&2 "You need git, curl, or wget to install nvm"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
else
|
else
|
||||||
# Cloning to $NVM_DIR
|
if [ "$METHOD" = "git" ]; then
|
||||||
git clone https://github.com/creationix/nvm.git $NVM_DIR
|
if ! nvm_has "git"; then
|
||||||
|
echo >&2 "You need git to install nvm"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
install_nvm_from_git
|
||||||
|
fi
|
||||||
|
if [ "$METHOD" = "script" ]; then
|
||||||
|
if ! nvm_has "nvm_download"; then
|
||||||
|
echo >&2 "You need curl or wget to install nvm"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
install_nvm_as_script
|
||||||
|
fi
|
||||||
fi
|
fi
|
||||||
|
|
||||||
echo
|
echo
|
||||||
|
|
||||||
# Detect profile file, .bash_profile has precedence over .profile
|
# Detect profile file if not specified as environment variable (eg: PROFILE=~/.myprofile).
|
||||||
if [ ! -z "$1" ]; then
|
if [ -z "$PROFILE" ]; then
|
||||||
PROFILE="$1"
|
|
||||||
else
|
|
||||||
if [ -f "$HOME/.bash_profile" ]; then
|
if [ -f "$HOME/.bash_profile" ]; then
|
||||||
PROFILE="$HOME/.bash_profile"
|
PROFILE="$HOME/.bash_profile"
|
||||||
elif [ -f "$HOME/.zshrc" ]; then
|
elif [ -f "$HOME/.zshrc" ]; then
|
||||||
PROFILE="$HOME/.zshrc"
|
PROFILE="$HOME/.zshrc"
|
||||||
elif [ -f "$HOME/.profile" ]; then
|
elif [ -f "$HOME/.profile" ]; then
|
||||||
PROFILE="$HOME/.profile"
|
PROFILE="$HOME/.profile"
|
||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
|
|
||||||
SOURCE_STR="[ -s \$HOME/.nvm/nvm.sh ] && . \$HOME/.nvm/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" ] || [ ! -f "$PROFILE" ] ; then
|
||||||
if [ -z $PROFILE ]; then
|
if [ -z "$PROFILE" ]; then
|
||||||
echo "=> Profile not found. Tried $HOME/.bash_profile and $HOME/.profile"
|
echo "=> Profile not found. Tried ~/.bash_profile, ~/.zshrc, and ~/.profile."
|
||||||
|
echo "=> Create one of them and run this script again"
|
||||||
else
|
else
|
||||||
echo "=> Profile $PROFILE not found"
|
echo "=> Profile $PROFILE not found"
|
||||||
|
echo "=> Create it (touch $PROFILE) and run this script again"
|
||||||
fi
|
fi
|
||||||
echo "=> Run this script again after running the following:"
|
echo " OR"
|
||||||
|
echo "=> Append the following lines to the correct file yourself:"
|
||||||
|
printf "$SOURCE_STR"
|
||||||
echo
|
echo
|
||||||
echo "\ttouch $HOME/.profile"
|
|
||||||
echo
|
|
||||||
echo "-- OR --"
|
|
||||||
echo
|
|
||||||
echo "=> Append the following line to the correct file yourself"
|
|
||||||
echo
|
|
||||||
echo "\t$SOURCE_STR"
|
|
||||||
echo
|
|
||||||
echo "=> Close and reopen your terminal afterwards to start using NVM"
|
|
||||||
exit
|
|
||||||
fi
|
|
||||||
|
|
||||||
if ! grep -qc 'nvm.sh' $PROFILE; then
|
|
||||||
echo "=> Appending source string to $PROFILE"
|
|
||||||
echo "" >> "$PROFILE"
|
|
||||||
echo $SOURCE_STR >> "$PROFILE"
|
|
||||||
else
|
else
|
||||||
echo "=> Source string already in $PROFILE"
|
if ! grep -qc 'nvm.sh' "$PROFILE"; then
|
||||||
|
echo "=> Appending source string to $PROFILE"
|
||||||
|
printf "$SOURCE_STR\n" >> "$PROFILE"
|
||||||
|
else
|
||||||
|
echo "=> Source string already in $PROFILE"
|
||||||
|
fi
|
||||||
fi
|
fi
|
||||||
|
|
||||||
echo "=> Close and reopen your terminal to start using NVM"
|
echo "=> Close and reopen your terminal to start using nvm"
|
||||||
|
|||||||
14
nvm-exec
Executable file
14
nvm-exec
Executable file
@@ -0,0 +1,14 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
DIR="$(command cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
|
||||||
|
|
||||||
|
source "$DIR/nvm.sh"
|
||||||
|
|
||||||
|
if [ -n "$NODE_VERSION" ]; then
|
||||||
|
nvm use $NODE_VERSION > /dev/null || (echo "NODE_VERSION not set" >&2 && exit 127)
|
||||||
|
else
|
||||||
|
nvm use > /dev/null || (echo "No .nvmrc file found" >&2 && exit 127)
|
||||||
|
fi
|
||||||
|
|
||||||
|
exec $@
|
||||||
|
|
||||||
33
package.json
Normal file
33
package.json
Normal file
@@ -0,0 +1,33 @@
|
|||||||
|
{
|
||||||
|
"name": "nvm",
|
||||||
|
"version": "0.14.0",
|
||||||
|
"description": "Node Version Manager - Simple bash script to manage multiple active node.js versions",
|
||||||
|
"directories": {
|
||||||
|
"test": "test"
|
||||||
|
},
|
||||||
|
"scripts": {
|
||||||
|
"test": "urchin test",
|
||||||
|
"test/fast": "urchin -f test/fast",
|
||||||
|
"test/slow": "urchin -f test/slow"
|
||||||
|
},
|
||||||
|
"repository": {
|
||||||
|
"type": "git",
|
||||||
|
"url": "git://github.com/creationix/nvm.git"
|
||||||
|
},
|
||||||
|
"keywords": [
|
||||||
|
"nvm",
|
||||||
|
"node",
|
||||||
|
"version",
|
||||||
|
"manager"
|
||||||
|
],
|
||||||
|
"author": "Tim Caswell <tim@creationix.com>",
|
||||||
|
"license": "MIT",
|
||||||
|
"bugs": {
|
||||||
|
"url": "https://github.com/creationix/nvm/issues"
|
||||||
|
},
|
||||||
|
"homepage": "https://github.com/creationix/nvm",
|
||||||
|
"devDependencies": {
|
||||||
|
"urchin": "~0.0.2"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
@@ -2,9 +2,40 @@
|
|||||||
|
|
||||||
mkdir ../../../v0.1.3
|
mkdir ../../../v0.1.3
|
||||||
mkdir ../../../v0.2.3
|
mkdir ../../../v0.2.3
|
||||||
|
mkdir ../../../v0.20.3
|
||||||
|
|
||||||
. ../../../nvm.sh
|
. ../../../nvm.sh
|
||||||
|
|
||||||
|
die () { echo $@ ; exit 1; }
|
||||||
|
|
||||||
# The result should contain only the appropriate version numbers.
|
# The result should contain only the appropriate version numbers.
|
||||||
nvm ls 0.2 | grep v0.2.3 &&
|
|
||||||
nvm ls 0.1 | grep -v v0.2.3
|
nvm ls 0.1 | grep 'v0.2.3' > /dev/null
|
||||||
|
if [ $? -eq 0 ]; then
|
||||||
|
echo '"nvm ls 0.1" contained v0.2.3'
|
||||||
|
fi
|
||||||
|
|
||||||
|
nvm ls 0.1 | grep 'v0.20.3' > /dev/null
|
||||||
|
if [ $? -eq 0 ]; then
|
||||||
|
die '"nvm ls 0.1" contained v0.20.3'
|
||||||
|
fi
|
||||||
|
|
||||||
|
nvm ls 0.1 | grep 'v0.1.3' > /dev/null
|
||||||
|
if [ $? -ne 0 ]; then
|
||||||
|
die '"nvm ls 0.1" did not contain v0.1.3'
|
||||||
|
fi
|
||||||
|
|
||||||
|
nvm ls 0.2 | grep 'v0.2.3' > /dev/null
|
||||||
|
if [ $? -ne 0 ]; then
|
||||||
|
die '"nvm ls 0.2" did not contain v0.2.3'
|
||||||
|
fi
|
||||||
|
|
||||||
|
nvm ls 0.2 | grep 'v0.20.3' > /dev/null
|
||||||
|
if [ $? -eq 0 ]; then
|
||||||
|
die '"nvm ls 0.2" contained v0.20.3'
|
||||||
|
fi
|
||||||
|
|
||||||
|
nvm ls 0.2 | grep 'v0.2.3' > /dev/null
|
||||||
|
if [ $? -ne 0 ]; then
|
||||||
|
die '"nvm ls 0.2" did not contain v0.2.3'
|
||||||
|
fi
|
||||||
|
|||||||
@@ -0,0 +1,7 @@
|
|||||||
|
#!/bin/sh
|
||||||
|
|
||||||
|
. ../../../nvm.sh
|
||||||
|
|
||||||
|
nvm ls nonexistent_version
|
||||||
|
[ "$?" = "3" ]
|
||||||
|
|
||||||
@@ -0,0 +1,7 @@
|
|||||||
|
#!/bin/sh
|
||||||
|
|
||||||
|
. ../../../nvm.sh
|
||||||
|
|
||||||
|
nvm ls node
|
||||||
|
[ "$?" = "3" ]
|
||||||
|
|
||||||
@@ -2,8 +2,12 @@
|
|||||||
|
|
||||||
. ../../../nvm.sh
|
. ../../../nvm.sh
|
||||||
|
|
||||||
mkdir ../../../v0.0.{1,3,9}
|
mkdir ../../../v0.0.1
|
||||||
mkdir ../../../v0.3.{1,3,9}
|
mkdir ../../../v0.0.3
|
||||||
|
mkdir ../../../v0.0.9
|
||||||
|
mkdir ../../../v0.3.1
|
||||||
|
mkdir ../../../v0.3.3
|
||||||
|
mkdir ../../../v0.3.9
|
||||||
|
|
||||||
# The result should contain the version numbers.
|
# The result should contain the version numbers.
|
||||||
nvm ls | grep v0.0.1 &&
|
nvm ls | grep v0.0.1 &&
|
||||||
|
|||||||
9
test/fast/Listing versions/Running "nvm ls" should filter out ".nvm"
Executable file
9
test/fast/Listing versions/Running "nvm ls" should filter out ".nvm"
Executable 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.
|
||||||
14
test/fast/Listing versions/Running "nvm ls" should filter out "versions"
Executable file
14
test/fast/Listing versions/Running "nvm ls" should filter out "versions"
Executable file
@@ -0,0 +1,14 @@
|
|||||||
|
#!/bin/sh
|
||||||
|
|
||||||
|
mkdir ../../../v0.1.3
|
||||||
|
mkdir ../../../v0.2.3
|
||||||
|
|
||||||
|
. ../../../nvm.sh
|
||||||
|
|
||||||
|
mkdir ../../../versions
|
||||||
|
|
||||||
|
[ -z "$(nvm ls | \grep 'versions')" ]
|
||||||
|
# The result should contain only the appropriate version numbers.
|
||||||
|
|
||||||
|
rmdir ../../../versions
|
||||||
|
|
||||||
@@ -0,0 +1,21 @@
|
|||||||
|
#!/bin/sh
|
||||||
|
|
||||||
|
die () { echo $@ ; exit 1; }
|
||||||
|
|
||||||
|
. ../../../nvm.sh
|
||||||
|
|
||||||
|
mkdir -p ../../../v0.0.1
|
||||||
|
mkdir -p ../../../v0.0.3
|
||||||
|
mkdir -p ../../../v0.0.9
|
||||||
|
mkdir -p ../../../v0.3.1
|
||||||
|
mkdir -p ../../../v0.3.3
|
||||||
|
mkdir -p ../../../v0.3.9
|
||||||
|
|
||||||
|
nvm_has_system_node() { return 0; }
|
||||||
|
nvm ls | grep system 2>&1 > /dev/null
|
||||||
|
[ $? -eq 0 ] || die '"nvm ls" did not contain "system" when system node is present'
|
||||||
|
|
||||||
|
nvm_has_system_node() { return 1; }
|
||||||
|
nvm ls | grep system 2>&1 > /dev/null
|
||||||
|
[ $? -ne 0 ] || die '"nvm ls" contained "system" when system node is not present'
|
||||||
|
|
||||||
@@ -0,0 +1,12 @@
|
|||||||
|
#!/bin/sh
|
||||||
|
|
||||||
|
die () { echo $@ ; exit 1; }
|
||||||
|
|
||||||
|
mkdir -p ../../../versions/v0.12.1
|
||||||
|
mkdir ../../../v0.1.3
|
||||||
|
|
||||||
|
. ../../../nvm.sh
|
||||||
|
|
||||||
|
nvm ls 0.12 | grep v0.12.1 || die '"nvm ls" did not list a version in the versions/ directory'
|
||||||
|
nvm ls 0.1 | grep v0.1.3 || die '"nvm ls" did not list a version not in the versions/ directory'
|
||||||
|
|
||||||
@@ -0,0 +1,11 @@
|
|||||||
|
#!/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
|
||||||
|
|
||||||
12
test/fast/Listing versions/teardown
Normal file
12
test/fast/Listing versions/teardown
Normal file
@@ -0,0 +1,12 @@
|
|||||||
|
rmdir ../../../v0.0.1
|
||||||
|
rmdir ../../../v0.0.3
|
||||||
|
rmdir ../../../v0.0.9
|
||||||
|
rmdir ../../../v0.1.2
|
||||||
|
rmdir ../../../v0.1.3
|
||||||
|
rmdir ../../../v0.2.3
|
||||||
|
rmdir ../../../v0.3.1
|
||||||
|
rmdir ../../../v0.3.3
|
||||||
|
rmdir ../../../v0.3.9
|
||||||
|
rmdir ../../../versions
|
||||||
|
unalias nvm_has_system_node
|
||||||
|
|
||||||
@@ -2,4 +2,4 @@
|
|||||||
|
|
||||||
. ../../nvm.sh
|
. ../../nvm.sh
|
||||||
nvm alias test v0.1.2
|
nvm alias test v0.1.2
|
||||||
[ $(cat ../../alias/test) = 'v0.1.2' ]
|
[ "$(cat ../../alias/test)" = "v0.1.2" ]
|
||||||
|
|||||||
10
test/fast/Running "nvm current" should display current nvm environment.
Executable file
10
test/fast/Running "nvm current" should display current nvm environment.
Executable file
@@ -0,0 +1,10 @@
|
|||||||
|
#!/bin/sh
|
||||||
|
|
||||||
|
die () { echo $@ ; exit 1; }
|
||||||
|
|
||||||
|
. ../../nvm.sh
|
||||||
|
|
||||||
|
nvm deactivate 2>&1
|
||||||
|
|
||||||
|
[ "$(nvm current)" = "system" ] || [ "$(nvm current)" = "none" ] || die '"nvm current" did not report "system" or "none" when deactivated'
|
||||||
|
|
||||||
@@ -4,11 +4,11 @@ mkdir -p ../../v0.2.3
|
|||||||
|
|
||||||
die () { echo $@ ; exit 1; }
|
die () { echo $@ ; exit 1; }
|
||||||
|
|
||||||
[[ $PATH != *v0.2.3/*/bin* ]] || echo "WARNING: Unexpectedly found v0.2.3 already active" >&2
|
[ `expr $PATH : ".*v0.2.3/.*/bin"` = 0 ] || echo "WARNING: Unexpectedly found v0.2.3 already active" >&2
|
||||||
|
|
||||||
. ../../nvm.sh
|
. ../../nvm.sh
|
||||||
nvm use v0.2.3 &&
|
nvm use v0.2.3 &&
|
||||||
[[ $PATH == *v0.2.3/*/bin* ]] || 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 &&
|
nvm deactivate &&
|
||||||
[[ $PATH != *v0.2.3/*/bin* ]] || 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"
|
||||||
|
|||||||
7
test/fast/Running "nvm install" with an invalid version fails nicely
Executable file
7
test/fast/Running "nvm install" with an invalid version fails nicely
Executable 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"
|
||||||
|
|
||||||
12
test/fast/Running "nvm unload" should unset all function and variables.
Executable file
12
test/fast/Running "nvm unload" should unset all function and variables.
Executable 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
|
||||||
|
|
||||||
13
test/fast/Running "nvm use system" should work as expected
Executable file
13
test/fast/Running "nvm use system" should work as expected
Executable file
@@ -0,0 +1,13 @@
|
|||||||
|
#!/bin/sh
|
||||||
|
|
||||||
|
die () { echo $@ ; exit 1; }
|
||||||
|
|
||||||
|
. ../../nvm.sh
|
||||||
|
|
||||||
|
nvm_has_system_node() { return 0; }
|
||||||
|
[ "$(nvm use system 2>&1 | tail -n1)" = "Now using system version of node: $(node -v)." ] || die "Could not use system version of node"
|
||||||
|
|
||||||
|
nvm_has_system_node() { return 1; }
|
||||||
|
[ "$(nvm use system 2>&1 | tail -n1)" = "System version of node not found." ] || die "Did not report error, system node not found"
|
||||||
|
nvm use system 2>&1 > /dev/null || [ $? -eq 127 ] || die "Did not return error code, system node not found"
|
||||||
|
|
||||||
32
test/fast/Running "nvm use x" should create and change the "current" symlink
Executable file
32
test/fast/Running "nvm use x" should create and change the "current" symlink
Executable file
@@ -0,0 +1,32 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
. ../../nvm.sh
|
||||||
|
|
||||||
|
rm -rf ../../v0.10.29
|
||||||
|
mkdir ../../v0.10.29
|
||||||
|
nvm use 0.10.29
|
||||||
|
rmdir ../../v0.10.29
|
||||||
|
|
||||||
|
if [ ! -L ../../current ];then
|
||||||
|
echo "Expected 'current' symlink to be created!"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
oldLink="$(readlink ../../current)"
|
||||||
|
|
||||||
|
if [ "$(basename $oldLink)" != 'v0.10.29' ];then
|
||||||
|
echo "Expected 'current' to point to v0.10.29 but was $oldLink"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
rm -rf ../../v0.11.13
|
||||||
|
mkdir ../../v0.11.13
|
||||||
|
nvm use 0.11.13
|
||||||
|
rmdir ../../v0.11.13
|
||||||
|
|
||||||
|
newLink="$(readlink ../../current)"
|
||||||
|
|
||||||
|
if [ "$(basename $newLink)" != 'v0.11.13' ];then
|
||||||
|
echo "Expected 'current' to point to v0.11.13 but was $newLink"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
29
test/fast/Unit tests/nvm_has_system_node
Executable file
29
test/fast/Unit tests/nvm_has_system_node
Executable file
@@ -0,0 +1,29 @@
|
|||||||
|
#!/bin/sh
|
||||||
|
|
||||||
|
cleanup () {
|
||||||
|
rm ../../../v0.1.2/node
|
||||||
|
rmdir ../../../v0.1.2
|
||||||
|
}
|
||||||
|
die () { echo $@ ; exit 1; }
|
||||||
|
|
||||||
|
. ../../../nvm.sh
|
||||||
|
|
||||||
|
mkdir ../../../v0.1.2
|
||||||
|
touch ../../../v0.1.2/node
|
||||||
|
|
||||||
|
nvm use 0.1.2
|
||||||
|
|
||||||
|
if command -v node; then
|
||||||
|
nvm_has_system_node
|
||||||
|
else
|
||||||
|
! nvm_has_system_node
|
||||||
|
fi
|
||||||
|
|
||||||
|
nvm deactivate /dev/null 2>&1
|
||||||
|
|
||||||
|
if command -v node; then
|
||||||
|
nvm_has_system_node
|
||||||
|
else
|
||||||
|
! nvm_has_system_node
|
||||||
|
fi
|
||||||
|
|
||||||
28
test/fast/Unit tests/nvm_ls_current
Executable file
28
test/fast/Unit tests/nvm_ls_current
Executable file
@@ -0,0 +1,28 @@
|
|||||||
|
#!/bin/sh
|
||||||
|
|
||||||
|
die () { echo $@ ; exit 1; }
|
||||||
|
|
||||||
|
. ../../../nvm.sh
|
||||||
|
|
||||||
|
return_zero () { return 0; }
|
||||||
|
|
||||||
|
[ "$( (nvm deactivate > /dev/null 2>&1) && nvm_ls_current)" = "system" ] || die 'when deactivated, did not return "system"'
|
||||||
|
|
||||||
|
TEST_PWD=$(pwd)
|
||||||
|
TEST_DIR="$TEST_PWD/nvm_ls_current_tmp"
|
||||||
|
rm -rf "$TEST_DIR"
|
||||||
|
mkdir "$TEST_DIR"
|
||||||
|
ln -s "$(which which)" "$TEST_DIR/which"
|
||||||
|
ln -s "$(which dirname)" "$TEST_DIR/dirname"
|
||||||
|
|
||||||
|
[ "$(PATH="$TEST_DIR" nvm_ls_current)" = "none" ] || die 'when node not installed, nvm_ls_current did not return "none"'
|
||||||
|
[ "@$(PATH="$TEST_DIR" nvm_ls_current 2> /dev/stdout 1> /dev/null)@" = "@@" ] || die 'when node not installed, nvm_ls_current returned error output'
|
||||||
|
|
||||||
|
echo "#!/bin/bash" > "$TEST_DIR/node"
|
||||||
|
echo "echo 'VERSION FOO!'" > "$TEST_DIR/node"
|
||||||
|
chmod a+x "$TEST_DIR/node"
|
||||||
|
|
||||||
|
[ "$(alias nvm_tree_contains_path='return_zero' && PATH="$TEST_DIR" nvm_ls_current)" = "VERSION FOO!" ] || die 'when activated, did not return nvm node version'
|
||||||
|
|
||||||
|
rm -rf "$TEST_DIR"
|
||||||
|
|
||||||
18
test/fast/Unit tests/nvm_prepend_path
Executable file
18
test/fast/Unit tests/nvm_prepend_path
Executable 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 "
|
||||||
11
test/fast/Unit tests/nvm_strip_path
Executable file
11
test/fast/Unit tests/nvm_strip_path
Executable 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 "
|
||||||
32
test/fast/Unit tests/nvm_tree_contains_path
Executable file
32
test/fast/Unit tests/nvm_tree_contains_path
Executable file
@@ -0,0 +1,32 @@
|
|||||||
|
#!/bin/sh
|
||||||
|
|
||||||
|
cleanup () {
|
||||||
|
rm tmp/node
|
||||||
|
rmdir tmp
|
||||||
|
rm tmp2/node
|
||||||
|
rmdir tmp2
|
||||||
|
}
|
||||||
|
die () { echo $@ ; cleanup; exit 1; }
|
||||||
|
|
||||||
|
. ../../../nvm.sh
|
||||||
|
|
||||||
|
mkdir -p tmp
|
||||||
|
touch tmp/node
|
||||||
|
mkdir -p tmp2
|
||||||
|
touch tmp2/node
|
||||||
|
|
||||||
|
[ "$(nvm_tree_contains_path 2>&1)" = "both the tree and the node path are required" ] || die 'incorrect error message with no args'
|
||||||
|
[ "$(nvm_tree_contains_path > /dev/null 2>&1 ; echo $?)" = "2" ] || die 'incorrect error code with no args'
|
||||||
|
[ "$(nvm_tree_contains_path tmp 2>&1)" = "both the tree and the node path are required" ] || die 'incorrect error message with one arg'
|
||||||
|
[ "$(nvm_tree_contains_path > /dev/null 2>&1 ; echo $?)" = "2" ] || die 'incorrect error code with one arg'
|
||||||
|
|
||||||
|
nvm_tree_contains_path tmp tmp/node || die '"tmp" should contain "tmp/node"'
|
||||||
|
|
||||||
|
nvm_tree_contains_path tmp tmp2/node && die '"tmp" should not contain "tmp2/node"'
|
||||||
|
|
||||||
|
nvm_tree_contains_path tmp2 tmp2/node || die '"tmp2" should contain "tmp2/node"'
|
||||||
|
|
||||||
|
nvm_tree_contains_path tmp2 tmp/node && die '"tmp2" should not contain "tmp/node"'
|
||||||
|
|
||||||
|
cleanup
|
||||||
|
|
||||||
11
test/fast/Unit tests/nvm_version_dir
Executable file
11
test/fast/Unit tests/nvm_version_dir
Executable file
@@ -0,0 +1,11 @@
|
|||||||
|
#!/bin/sh
|
||||||
|
|
||||||
|
die () { echo $@ ; exit 1; }
|
||||||
|
|
||||||
|
. ../../../nvm.sh
|
||||||
|
|
||||||
|
[ "$(nvm_version_dir)" = "$NVM_DIR/versions" ] || die '"nvm_version_dir" did not return new dir path'
|
||||||
|
[ "$(nvm_version_dir new)" = "$(nvm_version_dir)" ] || die '"nvm_version_dir new" did not return new dir path'
|
||||||
|
[ "$(nvm_version_dir old)" = "$NVM_DIR" ] || die '"nvm_version_dir old" did not return old dir path'
|
||||||
|
[ "$(nvm_version_dir foo 2>&1)" = "unknown version dir" ] || die '"nvm_version_dir foo" did not error out'
|
||||||
|
|
||||||
16
test/fast/Unit tests/nvm_version_greater
Executable file
16
test/fast/Unit tests/nvm_version_greater
Executable file
@@ -0,0 +1,16 @@
|
|||||||
|
#!/bin/sh
|
||||||
|
|
||||||
|
die () { echo $@ ; exit 1; }
|
||||||
|
|
||||||
|
. ../../../nvm.sh
|
||||||
|
|
||||||
|
nvm_version_greater 0.10.0 0.2.12 || die '"nvm_version_greater 0.10.0 0.2.12" did not return true'
|
||||||
|
|
||||||
|
if nvm_version_greater 0.10.0 0.20.12; then
|
||||||
|
die '"nvm_version_greater 0.10.0 0.20.12" returned true'
|
||||||
|
fi
|
||||||
|
|
||||||
|
if nvm_version_greater 0.10.0 0.10.0; then
|
||||||
|
die '"nvm_version_greater" returned false for the same two versions'
|
||||||
|
fi
|
||||||
|
|
||||||
11
test/fast/Unit tests/nvm_version_path
Executable file
11
test/fast/Unit tests/nvm_version_path
Executable file
@@ -0,0 +1,11 @@
|
|||||||
|
#!/bin/sh
|
||||||
|
|
||||||
|
die () { echo $@ ; exit 1; }
|
||||||
|
|
||||||
|
. ../../../nvm.sh
|
||||||
|
|
||||||
|
[ "$(nvm_version_path foo)" = "$NVM_DIR/foo" ] || die '"nvm_version_path foo" did not return correct location'
|
||||||
|
[ "$(nvm_version_path 2>&1)" = "version is required" ] || die '"nvm_version_path" did not error out'
|
||||||
|
[ "$(nvm_version_path v0.11.0)" = "$NVM_DIR/v0.11.0" ] || die 'old version has the wrong path'
|
||||||
|
[ "$(nvm_version_path v0.12.0)" = "$NVM_DIR/versions/v0.12.0" ] || die 'new version has the wrong path'
|
||||||
|
|
||||||
@@ -5,8 +5,12 @@
|
|||||||
|
|
||||||
# Back up
|
# Back up
|
||||||
|
|
||||||
type setopt >/dev/null 2>&1 && setopt NULL_GLOB
|
|
||||||
type shopt >/dev/null 2>&1 && shopt -s nullglob
|
|
||||||
mkdir -p bak
|
mkdir -p bak
|
||||||
mv v* src alias bak || sleep 0s
|
for SRC in v* src alias; do
|
||||||
|
[ -e "$SRC" ] && mv "$SRC" bak
|
||||||
|
done
|
||||||
|
if [ -d versions ]; then
|
||||||
|
mv versions bak
|
||||||
|
fi
|
||||||
|
true
|
||||||
)
|
)
|
||||||
|
|||||||
@@ -6,7 +6,7 @@
|
|||||||
# Restore
|
# Restore
|
||||||
if [ -d bak ]
|
if [ -d bak ]
|
||||||
then
|
then
|
||||||
mv bak/* . || sleep 0s
|
mv bak/* . > /dev/null 2>&1 || sleep 0s
|
||||||
rmdir bak
|
rmdir bak
|
||||||
fi
|
fi
|
||||||
mkdir -p src alias
|
mkdir -p src alias
|
||||||
|
|||||||
14
test/slow/Running "nvm current" should display current nvm environment.
Executable file
14
test/slow/Running "nvm current" should display current nvm environment.
Executable file
@@ -0,0 +1,14 @@
|
|||||||
|
#!/bin/sh
|
||||||
|
|
||||||
|
die () { echo $@ ; exit 1; }
|
||||||
|
|
||||||
|
. ../../nvm.sh
|
||||||
|
|
||||||
|
nvm install 0.10
|
||||||
|
|
||||||
|
[ "$(nvm current)" = "$(node -v)" ] || die "Failed to find current version: got \"$(nvm current)\", expected \"$(node -v)\""
|
||||||
|
|
||||||
|
nvm install 0.6.21
|
||||||
|
[ "$(node -v)" = "v0.6.21-pre" ] || die "v0.6.21-pre not installed with v0.6.21"
|
||||||
|
[ "$(nvm current)" = "v0.6.21" ] || die "v0.6.21-pre not reported as v0.6.21"
|
||||||
|
|
||||||
@@ -1,14 +0,0 @@
|
|||||||
#!/bin/sh
|
|
||||||
|
|
||||||
set -e
|
|
||||||
. ../../nvm.sh
|
|
||||||
|
|
||||||
# Remove the stuff we're clobbering.
|
|
||||||
[ -e ../../v0.6.14 ] && rm -R ../../v0.6.14
|
|
||||||
|
|
||||||
# Install
|
|
||||||
nvm install 0.6.14
|
|
||||||
|
|
||||||
# Check
|
|
||||||
[ -d ../../v0.6.14 ]
|
|
||||||
nvm run v0.6.14 --version | grep v0.6.14
|
|
||||||
@@ -1,14 +0,0 @@
|
|||||||
#!/bin/sh
|
|
||||||
|
|
||||||
set -e
|
|
||||||
. ../../nvm.sh
|
|
||||||
|
|
||||||
# Remove the stuff we're clobbering.
|
|
||||||
[ -e ../../v0.8.6 ] && rm -R ../../v0.8.6
|
|
||||||
|
|
||||||
# Install from binary
|
|
||||||
nvm install 0.8.6
|
|
||||||
|
|
||||||
# Check
|
|
||||||
[ -d ../../v0.8.6 ]
|
|
||||||
nvm run v0.8.6 --version | grep v0.8.6
|
|
||||||
@@ -1,14 +0,0 @@
|
|||||||
#!/bin/sh
|
|
||||||
|
|
||||||
set -e
|
|
||||||
. ../../nvm.sh
|
|
||||||
|
|
||||||
# Remove the stuff we're clobbering.
|
|
||||||
[ -e ../../v0.8.6 ] && rm -R ../../v0.8.6
|
|
||||||
|
|
||||||
# Install from source
|
|
||||||
nvm install -s 0.8.6
|
|
||||||
|
|
||||||
# Check
|
|
||||||
[ -d ../../v0.8.6 ]
|
|
||||||
nvm run v0.8.6 --version | grep v0.8.6
|
|
||||||
10
test/slow/nvm copy-packages/setup_dir
Executable file
10
test/slow/nvm copy-packages/setup_dir
Executable file
@@ -0,0 +1,10 @@
|
|||||||
|
#!/bin/sh
|
||||||
|
|
||||||
|
. ../../../nvm.sh
|
||||||
|
nvm install 0.10.28
|
||||||
|
nvm install 0.10.29
|
||||||
|
|
||||||
|
if [ -f ".nvmrc" ]; then
|
||||||
|
mv .nvmrc .nvmrc.bak
|
||||||
|
fi
|
||||||
|
|
||||||
21
test/slow/nvm copy-packages/should work as expected
Executable file
21
test/slow/nvm copy-packages/should work as expected
Executable file
@@ -0,0 +1,21 @@
|
|||||||
|
#!/bin/sh
|
||||||
|
|
||||||
|
die () { echo "$@" ; exit 1; }
|
||||||
|
|
||||||
|
. ../../../nvm.sh
|
||||||
|
|
||||||
|
nvm use 0.10.28
|
||||||
|
|
||||||
|
EXPECTED_PACKAGES="autoprefixer bower david eslint grunt-cli grunth-cli http-server jshint marked node-gyp npm recursive-blame uglify-js yo"
|
||||||
|
|
||||||
|
npm install -g --quiet $EXPECTED_PACKAGES
|
||||||
|
|
||||||
|
nvm use 0.10.29
|
||||||
|
ORIGINAL_PACKAGES=$(npm list --global --parseable --depth=0 2> /dev/null | tail -n +2 | grep -o -e '/[^/]*$' | cut -c 2- | sort | uniq | xargs)
|
||||||
|
|
||||||
|
nvm copy-packages 0.10.28
|
||||||
|
FINAL_PACKAGES=$(npm list --global --parseable --depth=0 2> /dev/null | tail -n +2 | grep -o -e '/[^/]*$' | cut -c 2- | sort | uniq | xargs)
|
||||||
|
|
||||||
|
[ "$FINAL_PACKAGES" = "$EXPECTED_PACKAGES" ] || die "final packages ($FINAL_PACKAGES) did not match expected packages ($EXPECTED_PACKAGES)"
|
||||||
|
[ "$ORIGINAL_PACKAGES" != "$FINAL_PACKAGES" ] || die "original packages matched final packages ($ORIGINAL_PACKAGES)"
|
||||||
|
|
||||||
12
test/slow/nvm copy-packages/teardown_dir
Executable file
12
test/slow/nvm copy-packages/teardown_dir
Executable file
@@ -0,0 +1,12 @@
|
|||||||
|
#!/bin/sh
|
||||||
|
|
||||||
|
. ../../../nvm.sh
|
||||||
|
nvm uninstall v0.10.28
|
||||||
|
nvm uninstall v0.10.29
|
||||||
|
|
||||||
|
rm -f .nvmrc
|
||||||
|
|
||||||
|
if [ -f ".nvmrc.bak" ]; then
|
||||||
|
mv .nvmrc.bak .nvmrc
|
||||||
|
fi
|
||||||
|
|
||||||
13
test/slow/nvm exec/Running "nvm exec 0.x" should work
Executable file
13
test/slow/nvm exec/Running "nvm exec 0.x" should work
Executable file
@@ -0,0 +1,13 @@
|
|||||||
|
#!/bin/sh
|
||||||
|
|
||||||
|
die () { echo $@ ; exit 1; }
|
||||||
|
|
||||||
|
. ../../../nvm.sh
|
||||||
|
|
||||||
|
nvm use 0.10
|
||||||
|
NPM_VERSION_TEN="$(npm --version)"
|
||||||
|
|
||||||
|
nvm use 0.11.7 && [ "$(node --version)" = "v0.11.7" ] || die "\`nvm use\` failed!"
|
||||||
|
|
||||||
|
[ "$(nvm exec 0.10 npm --version | tail -1)" = "$NPM_VERSION_TEN" ] || die "`nvm exec` failed to run with the correct version"
|
||||||
|
|
||||||
17
test/slow/nvm exec/Running "nvm exec" should pick up .nvmrc version
Executable file
17
test/slow/nvm exec/Running "nvm exec" should pick up .nvmrc version
Executable file
@@ -0,0 +1,17 @@
|
|||||||
|
#!/bin/sh
|
||||||
|
|
||||||
|
die () { echo $@ ; exit 1; }
|
||||||
|
|
||||||
|
. ../../../nvm.sh
|
||||||
|
|
||||||
|
nvm use 0.10.7
|
||||||
|
NPM_VERSION_TEN="$(npm --version)"
|
||||||
|
|
||||||
|
nvm use 0.11.7 && [ "$(node --version)" = "v0.11.7" ] || die "\`nvm use\` failed!"
|
||||||
|
|
||||||
|
echo "0.10.7" > .nvmrc
|
||||||
|
|
||||||
|
[ "$(nvm exec npm --version | tail -1)" = "$NPM_VERSION_TEN" ] || die "\`nvm exec\` failed to run with the .nvmrc version"
|
||||||
|
|
||||||
|
[ "$(nvm exec npm --version | head -1)" = "Found '$PWD/.nvmrc' with version <0.10.7>" ] || die "\`nvm exec\` failed to print out the \"found in .nvmrc\" message"
|
||||||
|
|
||||||
10
test/slow/nvm exec/setup_dir
Executable file
10
test/slow/nvm exec/setup_dir
Executable file
@@ -0,0 +1,10 @@
|
|||||||
|
#!/bin/sh
|
||||||
|
|
||||||
|
. ../../../nvm.sh
|
||||||
|
nvm install 0.10.7
|
||||||
|
nvm install 0.11.7
|
||||||
|
|
||||||
|
if [ -f ".nvmrc" ]; then
|
||||||
|
mv .nvmrc .nvmrc.bak
|
||||||
|
fi
|
||||||
|
|
||||||
12
test/slow/nvm exec/teardown_dir
Executable file
12
test/slow/nvm exec/teardown_dir
Executable file
@@ -0,0 +1,12 @@
|
|||||||
|
#!/bin/sh
|
||||||
|
|
||||||
|
. ../../../nvm.sh
|
||||||
|
nvm uninstall v0.10.7
|
||||||
|
nvm uninstall v0.11.7
|
||||||
|
|
||||||
|
rm .nvmrc
|
||||||
|
|
||||||
|
if [ -f ".nvmrc.bak" ]; then
|
||||||
|
mv .nvmrc.bak .nvmrc
|
||||||
|
fi
|
||||||
|
|
||||||
24
test/slow/nvm install/install already installed uses it
Executable file
24
test/slow/nvm install/install already installed uses it
Executable 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"
|
||||||
|
|
||||||
17
test/slow/nvm install/install from binary
Executable file
17
test/slow/nvm install/install from binary
Executable file
@@ -0,0 +1,17 @@
|
|||||||
|
#!/bin/sh
|
||||||
|
|
||||||
|
set -e
|
||||||
|
. ../../../nvm.sh
|
||||||
|
|
||||||
|
NVM_TEST_VERSION=v0.10.7
|
||||||
|
|
||||||
|
# Remove the stuff we're clobbering.
|
||||||
|
[ -e ../../../$NVM_TEST_VERSION ] && rm -R ../../../$NVM_TEST_VERSION
|
||||||
|
|
||||||
|
# Install from binary
|
||||||
|
nvm install $NVM_TEST_VERSION
|
||||||
|
|
||||||
|
# Check
|
||||||
|
[ -d ../../../$NVM_TEST_VERSION ]
|
||||||
|
nvm run $NVM_TEST_VERSION --version | grep $NVM_TEST_VERSION
|
||||||
|
|
||||||
17
test/slow/nvm install/install from source
Executable file
17
test/slow/nvm install/install from source
Executable file
@@ -0,0 +1,17 @@
|
|||||||
|
#!/bin/sh
|
||||||
|
|
||||||
|
set -e
|
||||||
|
. ../../../nvm.sh
|
||||||
|
|
||||||
|
NVM_TEST_VERSION=v0.10.7
|
||||||
|
|
||||||
|
# Remove the stuff we're clobbering.
|
||||||
|
[ -e ../../../$NVM_TEST_VERSION ] && rm -R ../../../$NVM_TEST_VERSION
|
||||||
|
|
||||||
|
# Install from source
|
||||||
|
nvm install -s $NVM_TEST_VERSION
|
||||||
|
|
||||||
|
# Check
|
||||||
|
[ -d ../../../$NVM_TEST_VERSION ]
|
||||||
|
nvm run $NVM_TEST_VERSION --version | grep $NVM_TEST_VERSION
|
||||||
|
|
||||||
24
test/slow/nvm install/install two versions and use the latest one
Executable file
24
test/slow/nvm install/install two versions and use the latest one
Executable file
@@ -0,0 +1,24 @@
|
|||||||
|
#!/bin/sh
|
||||||
|
|
||||||
|
set -e
|
||||||
|
. ../../../nvm.sh
|
||||||
|
|
||||||
|
# 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 i 0.9.12
|
||||||
|
|
||||||
|
# Check
|
||||||
|
[ -d ../../../v0.9.7 ]
|
||||||
|
[ -d ../../../v0.9.12 ]
|
||||||
|
|
||||||
|
# Use the first one
|
||||||
|
nvm use 0.9.7
|
||||||
|
|
||||||
|
# Use the latest one
|
||||||
|
nvm use 0.9
|
||||||
|
node --version | grep v0.9.12
|
||||||
|
|
||||||
@@ -0,0 +1,20 @@
|
|||||||
|
#!/bin/sh
|
||||||
|
|
||||||
|
set -e
|
||||||
|
. ../../../nvm.sh
|
||||||
|
|
||||||
|
NVM_TEST_VERSION=v0.10.7
|
||||||
|
|
||||||
|
# Remove the stuff we're clobbering.
|
||||||
|
[ -e ../../../$NVM_TEST_VERSION ] && rm -R ../../../$NVM_TEST_VERSION
|
||||||
|
|
||||||
|
# Install from binary
|
||||||
|
cat "$NVM_TEST_VERSION" > .nvmrc
|
||||||
|
|
||||||
|
nvm install
|
||||||
|
|
||||||
|
# Check
|
||||||
|
[ -d ../../../$NVM_TEST_VERSION ]
|
||||||
|
nvm run $NVM_TEST_VERSION --version | grep $NVM_TEST_VERSION
|
||||||
|
|
||||||
|
|
||||||
@@ -0,0 +1,20 @@
|
|||||||
|
#!/bin/sh
|
||||||
|
|
||||||
|
set -e
|
||||||
|
. ../../../nvm.sh
|
||||||
|
|
||||||
|
NVM_TEST_VERSION=v0.10.7
|
||||||
|
|
||||||
|
# Remove the stuff we're clobbering.
|
||||||
|
[ -e ../../../$NVM_TEST_VERSION ] && rm -R ../../../$NVM_TEST_VERSION
|
||||||
|
|
||||||
|
# Install from binary
|
||||||
|
cat "$NVM_TEST_VERSION" > .nvmrc
|
||||||
|
|
||||||
|
nvm install -s
|
||||||
|
|
||||||
|
# Check
|
||||||
|
[ -d ../../../$NVM_TEST_VERSION ]
|
||||||
|
nvm run $NVM_TEST_VERSION --version | grep $NVM_TEST_VERSION
|
||||||
|
|
||||||
|
|
||||||
6
test/slow/nvm install/setup_dir
Executable file
6
test/slow/nvm install/setup_dir
Executable file
@@ -0,0 +1,6 @@
|
|||||||
|
#!/bin/sh
|
||||||
|
|
||||||
|
if [ -f ".nvmrc" ]; then
|
||||||
|
mv .nvmrc .nvmrc.bak
|
||||||
|
fi
|
||||||
|
|
||||||
13
test/slow/nvm install/teardown_dir
Executable file
13
test/slow/nvm install/teardown_dir
Executable file
@@ -0,0 +1,13 @@
|
|||||||
|
#!/bin/sh
|
||||||
|
|
||||||
|
. ../../../nvm.sh
|
||||||
|
nvm uninstall v0.10.7
|
||||||
|
|
||||||
|
if [ -f ".nvmrc" ]; then
|
||||||
|
rm .nvmrc
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ -f ".nvmrc.bak" ]; then
|
||||||
|
mv .nvmrc.bak .nvmrc
|
||||||
|
fi
|
||||||
|
|
||||||
9
test/slow/nvm run/Running "nvm run 0.x" should work
Executable file
9
test/slow/nvm run/Running "nvm run 0.x" should work
Executable file
@@ -0,0 +1,9 @@
|
|||||||
|
#!/bin/sh
|
||||||
|
|
||||||
|
|
||||||
|
die () { echo $@ ; exit 1; }
|
||||||
|
|
||||||
|
. ../../../nvm.sh
|
||||||
|
|
||||||
|
[ "$(nvm run 0.10.7 --version | tail -1)" = "v0.10.7" ] || die "`nvm run` failed to run with the correct version"
|
||||||
|
|
||||||
13
test/slow/nvm run/Running "nvm run" should pick up .nvmrc version
Executable file
13
test/slow/nvm run/Running "nvm run" should pick up .nvmrc version
Executable file
@@ -0,0 +1,13 @@
|
|||||||
|
#!/bin/sh
|
||||||
|
|
||||||
|
|
||||||
|
die () { echo $@ ; exit 1; }
|
||||||
|
|
||||||
|
. ../../../nvm.sh
|
||||||
|
|
||||||
|
echo "0.10.7" > .nvmrc
|
||||||
|
|
||||||
|
[ "$(nvm run --version | tail -1)" = "v0.10.7" ] || die "\`nvm run\` failed to run with the .nvmrc version"
|
||||||
|
|
||||||
|
[ "$(nvm run --version | head -1)" = "Found '$PWD/.nvmrc' with version <0.10.7>" ] || die "\`nvm run\` failed to print out the \"found in .nvmrc\" message"
|
||||||
|
|
||||||
9
test/slow/nvm run/setup_dir
Executable file
9
test/slow/nvm run/setup_dir
Executable file
@@ -0,0 +1,9 @@
|
|||||||
|
#!/bin/sh
|
||||||
|
|
||||||
|
. ../../../nvm.sh
|
||||||
|
nvm install 0.10.7
|
||||||
|
|
||||||
|
if [ -f ".nvmrc" ]; then
|
||||||
|
mv .nvmrc .nvmrc.bak
|
||||||
|
fi
|
||||||
|
|
||||||
11
test/slow/nvm run/teardown_dir
Executable file
11
test/slow/nvm run/teardown_dir
Executable file
@@ -0,0 +1,11 @@
|
|||||||
|
#!/bin/sh
|
||||||
|
|
||||||
|
. ../../../nvm.sh
|
||||||
|
nvm uninstall v0.10.7
|
||||||
|
|
||||||
|
rm .nvmrc
|
||||||
|
|
||||||
|
if [ -f ".nvmrc.bak" ]; then
|
||||||
|
mv .nvmrc.bak .nvmrc
|
||||||
|
fi
|
||||||
|
|
||||||
Reference in New Issue
Block a user