Compare commits

...

360 Commits

Author SHA1 Message Date
Jordan Harband
9d96e4a6bf v0.15.0 2014-09-03 00:08:53 -07:00
Jordan Harband
a00a3a7429 Document NVM_SYMLINK_CURRENT env var from #514. 2014-09-03 00:07:45 -07:00
Jordan Harband
1c3585e5a2 Merge pull request #508 from creationix/nvm_copy_packages_not_npm
Don't copy `npm` with `nvm copy-packages`
2014-09-03 00:01:03 -07:00
Jordan Harband
214ce8853b npm ls has a bug in some versions when "--parseable --depth=0" is used together. 2014-09-02 15:47:45 -07:00
Jordan Harband
d24dc662dc Merge pull request #512 from kevinwang/shasum-lowest-priority
Make shasum the lowest priority checksum command.
2014-09-02 00:36:17 -07:00
Kevin Wang
e8056ac460 Run cleanup on die in nvm_checksum unit test. 2014-08-30 21:57:17 -05:00
Kevin Wang
429656bc41 Add unit tests for nvm_checksum. 2014-08-30 21:54:46 -05:00
Jordan Harband
b61445cbf4 Merge pull request #514 from stelcheck/master
Make the creation of a symlink an overridable default behaviour
2014-08-30 09:49:52 -07:00
Jordan Harband
603253b0cb Quote the version. 2014-08-29 00:12:16 -07:00
Jordan Harband
5ee955bb62 Remove unused $ROOT variable. 2014-08-29 00:12:02 -07:00
stelcheck
83a0efb085 * We print stats only on failure
* || true
2014-08-29 15:01:15 +09:00
stelcheck
9306a9b3f0 * Unit tests 2014-08-29 14:57:30 +09:00
stelcheck
59939d09e8 * Make the creation of a symlink an overridable default behaviour 2014-08-28 22:45:07 +09:00
Jordan Harband
f9769e40dd v0.14.0 2014-08-27 00:49:30 -07:00
Jordan Harband
9c44a3e4c7 Merge pull request #513 from creationix/node_0_6_21_pre
Add special handling for node v0.6.21-pre
2014-08-27 00:38:32 -07:00
Jordan Harband
5048a78376 Add special handling for node v0.6.21-pre 2014-08-26 23:53:17 -07:00
Kevin Wang
814319d7c0 Make shasum the lowest priority checksum command.
This fixes false "Checksums do not match" errors on systems where shasum
is a symlink to sha256sum or otherwise.
2014-08-27 00:06:41 -05:00
Jordan Harband
4b3d6f1760 Properly pass a space-separated list of packages to npm install
Fixes #490.
2014-08-22 02:44:04 -07:00
Jordan Harband
56c40cfa3c Don't try to copy npm itself with nvm copy-packages.
Fixes #504.
2014-08-22 02:19:56 -07:00
Jordan Harband
fd9e01b7e6 Merge pull request #507 from creationix/nvm_ls_current_tests
nvm_ls_current tests
2014-08-22 01:59:14 -07:00
Jordan Harband
5c7f08843d Add error checking to nvm_tree_contains_path 2014-08-21 17:15:53 -07:00
Jordan Harband
6e6c5c4e2a Removing an invalid option to touch from this test. 2014-08-21 17:19:43 -07:00
Jordan Harband
1c2c4788a2 Fixing nvm_version_greater tests.
Relates to #505, #506.
2014-08-21 23:42:51 -07:00
Jordan Harband
b59ecb9e11 Make sure the new versions directory is filtered out of nvm_ls output (in zsh). 2014-08-21 23:39:40 -07:00
Jordan Harband
7551746e55 Merge pull request #505 from magicdrive/fix-error_nvm_version_greater
Fixed `nvm_version_greater` has syntax error in zsh-builtin command `[`
2014-08-21 22:42:05 -07:00
Jordan Harband
70ac1e7fa4 Fix tests so that they fail in zsh (for #505) 2014-08-21 22:40:48 -07:00
Hiroshi IKEGAMI
f130d02efc Fixed nvm_version_greater has syntax error in zsh-buildin-command [ 2014-08-22 10:59:11 +09:00
Jordan Harband
150aea21ec Fixes #487. 2014-08-21 16:51:24 -07:00
Jordan Harband
273f9d497a Adding unit tests for nvm_ls_current. Relates to #487. 2014-08-21 01:35:03 -07:00
Jordan Harband
1c85068091 Merge pull request #502 from creationix/nvm_version_path
Store versions 0.12.0 and newer in a `versions` subdirectory
2014-08-20 22:49:17 -07:00
Jordan Harband
42786630a1 Merge pull request #503 from egilkh/master
Should escape grep in copy-packages.
2014-08-20 10:03:57 -07:00
egilkh
938feca6a9 Should escape grep in copy-packages. 2014-08-20 15:09:40 +02:00
Jordan Harband
3747735980 Make sure nvm clear-cache clears the versions directory as well. 2014-08-20 00:50:15 -07:00
Jordan Harband
5dd2d7e5d4 Make nvm ls support listing the "versions" directory when it's present. 2014-08-20 00:42:50 -07:00
Jordan Harband
65c2435418 Making sure that versions are backed up when running tests. 2014-08-20 00:37:38 -07:00
Jordan Harband
0a695c5d2a Modify nvm_version_path to use nvm_version_greater. 2014-08-20 00:18:29 -07:00
Jordan Harband
8fe677a644 Add nvm_version_greater 2014-08-20 00:01:06 -07:00
Jordan Harband
213ff003d0 Use nvm_version_path everywhere possible. 2014-08-19 16:17:18 -07:00
Jordan Harband
986abbf5db Create nvm_version_path 2014-08-19 16:17:00 -07:00
Jordan Harband
a2da9abd6d Use nvm_version_dir in nvm_version_path 2014-08-19 01:56:34 -07:00
Jordan Harband
9068dda110 Adding nvm_version_dir 2014-08-19 01:53:39 -07:00
Jordan Harband
6baa9a0918 Merge pull request #501 from creationix/fix_copy_packages
Fix nvm copy-packages
2014-08-16 02:35:15 -07:00
Jordan Harband
b8fe75e93a Tests for nvm copy-packages 2014-08-16 01:58:39 -07:00
Jordan Harband
78a5e3fadf Attempt to improve nvm copy-packages 2014-08-16 00:14:29 -07:00
Jordan Harband
5e54886cbc Merge pull request #500 from creationix/run_slow_tests_on_all_shells
Run slow tests on all shells
2014-08-15 21:30:29 -07:00
Jordan Harband
d7849054f8 Apparently wget outputs to stderr, so let's make sure we're checking both stderr and stdout. 2014-08-15 20:47:55 -07:00
Jordan Harband
708ac80a55 Properly replace the -I curl option for the --server-response wget option. 2014-08-15 20:47:55 -07:00
Jordan Harband
d341d5e535 Run all slow tests on all shells 2014-08-08 12:16:22 -07:00
Jordan Harband
eef12cc2b3 v0.13.1 2014-08-08 11:48:54 -07:00
Jordan Harband
99c8b59a14 Make sure that $ARGS is evaluated natively rather than as a single string argument.
Fixes #494.
2014-08-08 11:48:38 -07:00
Jordan Harband
abdc3f3c21 Run all fast tests without curl. 2014-08-07 13:53:12 -07:00
Jordan Harband
401ac45568 Merge pull request #477 from koenpunt/without-curl
add test without curl
2014-08-07 13:52:06 -07:00
Jordan Harband
61709c1f97 v0.13.0 2014-08-02 19:24:39 -07:00
Jordan Harband
1a8479ed31 Merge pull request #491 from creationix/nvm_exec
Add `nvm exec` command.
2014-08-02 19:23:05 -07:00
Jordan Harband
a703d3591f Tweaking the readme description 2014-08-02 19:22:53 -07:00
Jordan Harband
1fa2acf5a7 Adding nvm exec tests. 2014-08-02 15:43:04 -07:00
Jordan Harband
d5c0e94166 Adding nvm exec command. 2014-08-01 01:26:33 -07:00
Jordan Harband
6dc602b521 Ensure that nvm ls node doesn't return "node_modules", for example. 2014-08-01 01:24:28 -07:00
Jordan Harband
1d37af162a v0.12.2 2014-07-29 00:35:27 -07:00
Jordan Harband
781373f7ce Make sure awk is referenced unaliased, per https://github.com/creationix/nvm/issues/162#issuecomment-50284503 2014-07-27 23:02:22 -07:00
Jordan Harband
68574cc7e8 v0.12.1 2014-07-24 14:07:26 -07:00
Jordan Harband
0f3b06320e Merge pull request #481 from johnloy/master
Changes $path var to $node_path. Fixes #482.
2014-07-24 14:07:05 -07:00
John Loy
d181abb628 Changes $path var to $node_path
Avoids obliteration of $path set earlier by Prezto/zsh. Stomping on $path causes dirname to not be in the PATH resulting in an error.
2014-07-24 15:28:33 -04:00
Jordan Harband
f5643dc7ea v0.12.0 2014-07-23 01:15:14 -07:00
Jordan Harband
6bcac7f638 Merge pull request #480 from fjakobs/patch-1
install.sh: make sure to not error out if master branch does not exist
2014-07-23 01:14:41 -07:00
Fabian Jakobs
ad71389dcc master branch might not exist
After a fresh install I was unable to run the installer again. It was breaking with the error

error: branch 'master' not found.

my fix makes sure that the installer continues after that.
2014-07-23 10:08:58 +02:00
Jordan Harband
8cbf149558 Merge pull request #408 from creationix/nvm_system_awareness
Add `system` awareness to `nvm use`, `nvm ls`, and `nvm current`.
2014-07-21 22:55:27 -07:00
Jordan Harband
e7ada80d08 nvm use system should work as expected. 2014-07-21 02:03:18 -07:00
Jordan Harband
9912f7cc46 If nvm is deactivated, display "none" or "system" instead of the system node version 2014-07-21 02:03:18 -07:00
Jordan Harband
6e02e5a54c If nvm_ls is called without a pattern, and node exists, tack on "system". 2014-07-21 02:03:18 -07:00
Jordan Harband
42b010775b Add system support to nvm_print_versions 2014-07-21 02:03:18 -07:00
Jordan Harband
1c50c5c7aa Add nvm_tree_contains_path function 2014-07-21 02:03:04 -07:00
Jordan Harband
200a9aa97e v0.11.2 2014-07-20 23:58:19 -07:00
Jordan Harband
4512337c11 Adding a slow nvm current test, since it needs an installed version of node. 2014-07-20 23:41:11 -07:00
Jordan Harband
55677dba4a Avoid calling "nvm_ls current" and call "nvm_ls_current" directly 2014-07-20 23:40:20 -07:00
Jordan Harband
ca43ca21f5 Fix curl/wget detection. Fixes #478 2014-07-18 13:18:09 -07:00
Jordan Harband
fafbeb8c59 Merge pull request #479 from koenpunt/fix-args-replacement
string replacement turns out not POSIX compliant
2014-07-18 13:15:13 -07:00
Koen Punt
d67f2b110d string replacement turns out not POSIX compliant 2014-07-18 16:24:03 +02:00
Koen Punt
9c2127ce33 string replacement turns out not POSIX compliant 2014-07-18 16:21:20 +02:00
Koen Punt
423629c38b add test without curl 2014-07-18 14:35:22 +02:00
Jordan Harband
5ec0ccec1b Fixing make release to also cover package.json.
Per a3de7f3222 (commitcomment-7057689)
2014-07-18 01:49:57 -07:00
Jordan Harband
7a423b7bb4 v0.11.1 2014-07-18 01:48:46 -07:00
Jordan Harband
a3de7f3222 Fixing make release - amending a tagged commit makes the commit not match the tag. 2014-07-17 00:25:14 -07:00
Jordan Harband
55d892adc8 Fix #476 by making sure to cd into $NVM_DIR before checking out the tag. Also delete the master branch, because we won't be needing that. 2014-07-17 00:20:33 -07:00
Jordan Harband
3b42df8d1d Merge pull request #474 from mzgol/wget-hotfix
Hotfix: correctly map curl's `-C -` to wget
2014-07-16 10:16:18 -07:00
Michał Gołębiowski
21fa84225c Hotfix: correctly map curl's -C - to wget
wget doesn't need or accept the `-` parameter to `-c`. This incorrect
mapping causes `nvm install` to fail on a curlless OS.
2014-07-16 11:00:56 +02:00
Jordan Harband
4895aebf0a v0.11.0 2014-07-15 10:52:30 -07:00
Jordan Harband
8a29122d0a Adding teardown to test/fast/Listing versions/ 2014-07-15 02:01:01 -07:00
Jordan Harband
26ed7a003a Making sure to quote this output, so that paths with spaces don't break the method.
Although tests were passing in Travis for #470, they were failing locally - now they pass in both.
2014-07-15 02:00:48 -07:00
Jordan Harband
00ca5288b0 Merge pull request #470 from creationix/has_system_node
Adding nvm_has_system_node
2014-07-15 00:03:25 -07:00
Jordan Harband
6d2912a2ab Adding nvm_has_system_node 2014-07-14 21:41:26 -07:00
Jordan Harband
1d61584402 Making sure this test cleans up after itself. 2014-07-14 20:43:51 -07:00
Jordan Harband
f6974744cd Moving this nvm ls test inside the "listing versions" test subdir. 2014-07-14 12:36:28 -07:00
Jordan Harband
7171cbed6f Add an nvm_ls_current function. 2014-07-14 11:29:24 -07:00
Jordan Harband
8f66273922 Merge pull request #467 from jsdevel/adding-current-symlink
Adding a symlink in .nvm to the current version.

Fixes #430. Closes #447. Relates to #358. Fixes #355. Closes #313. Fixes #381.
2014-07-13 11:23:27 -07:00
Jordan Harband
1a9ab82e24 Merge pull request #466 from creationix/nvm_ls_minor_versions
nvm_ls minor versions
2014-07-13 11:01:12 -07:00
jsdevel
3fa004293c Adding a symlink in .nvm to the current version. 2014-07-12 12:01:35 -07:00
Jordan Harband
83efa2288d Use [0-9] instead of [[:digit:]] per https://github.com/creationix/nvm/pull/466#discussion_r14853668 - it's simpler (and probably more portable). 2014-07-12 11:02:42 -07:00
Jordan Harband
4cfe62d3d1 Fixing nvm ls 0.x to only include 0.x.* instead of 0.x*.* 2014-07-12 11:02:42 -07:00
Jordan Harband
802f064178 Adding a failing test. 2014-07-12 11:02:14 -07:00
Jordan Harband
c49cb68575 Merge pull request #468 from egilkh/master
Should escape grep in nvm_ls
2014-07-12 11:02:09 -07:00
egilkh
0534872e0f Should escape grep in nvm_ls 2014-07-12 19:33:28 +02:00
Olivier Mengué
f1b8cf8fd6 Use 'read' built-in instead of $(cat ... | head -n1) 2014-07-10 12:15:27 -07:00
Jordan Harband
78ff9a2215 Merge pull request #464 from koenpunt/release-task
add makefile release task
2014-07-10 12:14:23 -07:00
Koen Punt
b952be6f56 add makefile release task 2014-07-10 13:28:26 +02:00
Jordan Harband
638ae5c6fa Hardcode latest version number into the install script.
Fixes #462.
2014-07-10 01:24:12 -07:00
Jordan Harband
a7b6495172 Removing unnecessary line, per #461 2014-07-10 01:24:12 -07:00
Jordan Harband
703e43cc2b Merge pull request #463 from mzgol/bash
Use bash, not sh for install scritps - followup to #450
2014-07-10 01:22:39 -07:00
Michał Gołębiowski
03636878d1 Use bash, not sh for install scritps - followup to #450 2014-07-10 10:21:03 +02:00
Jordan Harband
2ee4b6f414 Correcting nvm.sh comment wrt bash 2014-07-09 18:30:52 -07:00
Jordan Harband
10305f0791 Merge pull request #460 from koenpunt/patch-1
Finalize fix for #458
2014-07-08 10:26:24 -07:00
Koen Punt
276c031c60 Finalize fix for #458 2014-07-08 14:49:24 +02:00
Jordan Harband
63f72b37df Followup per https://github.com/creationix/nvm/pull/452#issuecomment-48151847 2014-07-07 15:40:59 -07:00
Jordan Harband
cf5bfecec4 Merge pull request #452 from creationix/curl_wget_handling
Better combo curl/wget handling
2014-07-07 15:03:31 -07:00
Jordan Harband
77c3f20956 Merge pull request #459 from koenpunt/curl_wget_handling
fix nvm_curl arguments for stdout
2014-07-07 14:28:37 -07:00
Jordan Harband
e4ada9fa43 Revert part of the change from e0537ce3df, fixes #458 2014-07-07 14:22:49 -07:00
Koen Punt
a0de15d0f7 fix nvm_curl arguments for stdout 2014-07-07 23:16:20 +02:00
Jordan Harband
df4689fbd2 Removing an extra "echo" 2014-07-07 13:59:58 -07:00
Jordan Harband
018e47bec0 Make sure both wget and curl work. 2014-07-07 13:32:10 -07:00
Jordan Harband
74cc1eb022 Make nvm_curl do a runtime check if curl is available. 2014-07-07 13:32:10 -07:00
Jordan Harband
eda8ffbcc4 Add some more curl → wget argument munging 2014-07-07 13:32:10 -07:00
Jordan Harband
b9383c9016 Use nvm_curl instead of curl directly, which has a wget fallback. 2014-07-07 13:32:10 -07:00
Jordan Harband
25c0be1e20 Using an nvm_curl function instead of curl/wget directly. 2014-07-07 13:32:10 -07:00
Jordan Harband
a8233eb68c Merge pull request #457 from koenpunt/patch-1
Add newline to printf command
2014-07-07 13:02:23 -07:00
Koen Punt
ea198c9a19 add newline to printf 2014-07-07 14:43:02 +02:00
Jordan Harband
e0537ce3df Shellcheck recommendations. 2014-07-05 13:48:23 -07:00
Jordan Harband
cce5df35ba Naming install.sh functions more explicitly as being for nvm. 2014-07-05 13:44:00 -07:00
Jordan Harband
7e269961c3 In install.sh, rename has to nvm_has for consistency with nvm.sh. 2014-07-05 13:42:44 -07:00
Jordan Harband
f214ffaf1f Oxford comma 2014-07-05 11:07:14 -07:00
Jordan Harband
d016fe010a Merge pull request #450 from mzgol/install-script
Use bash, not sh for install scritps
2014-07-03 00:50:31 -07:00
Michał Gołębiowski
fb5a51b1b7 Use bash, not sh for install scritps
Install scripts don't work in pure sh; they may work on some systems where
the /bin/sh binary actually implements more than the pure Bourne Shell but
fail on other ones (e.g. Ubuntu).

Just using bash works.
2014-07-02 14:58:56 +02:00
Jordan Harband
3e5037a1be v0.10.0 2014-06-26 17:06:45 -07:00
Jordan Harband
60fec40613 Merge pull request #444 from creationix/fix_nvm_ls
Make sure `nvm ls foo` returns a nonzero exit code when a version is not found
2014-06-26 17:04:09 -07:00
Jordan Harband
fb215546ee Don't bother trying to return the exit code of nvm alias or nvm_print_versions 2014-06-26 16:52:48 -07:00
Jordan Harband
4b593bcda2 Make sure these vars are local, where supported 2014-06-26 16:52:34 -07:00
Jordan Harband
8349f0ff48 Make sure nvm ls foo returns a nonzero exit code when a version is not found.
Fixes #440.
2014-06-26 10:28:35 -07:00
Jordan Harband
bb250b5730 v0.9.0 2014-06-26 10:28:14 -07:00
Jordan Harband
b6f1c156da Use printf instead of echo -e
Fixes #446
2014-06-26 10:26:57 -07:00
Jordan Harband
4c9a36e9ad Separating variable declaration from first assignment, which should fix some ksh problems. 2014-06-22 15:44:22 -07:00
Jordan Harband
bb01513eba Making sure there's test coverage for nvm i 2014-06-22 09:18:41 -07:00
Jordan Harband
ba7f27dead Silently support nvm i x.x.x. Fixes #443. 2014-06-22 09:16:30 -07:00
Jordan Harband
79ec957ee7 Removing reference to NVM_PROFILE in README. Fixes #442 2014-06-21 17:47:02 -07:00
Jordan Harband
d8b55652a5 Return the exit code of nvm use when nvm install-ing. 2014-06-20 11:49:06 -07:00
Jordan Harband
4c38f507f5 Consistently returning exit code 1 when version is not installed yet. 2014-06-20 11:45:25 -07:00
Jordan Harband
f213167ef0 Returning exit code 3 when no version is found. 2014-06-20 11:45:14 -07:00
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
Jordan Harband
4a7275a0c6 Ensuring paths are in quotes, to preserve spaces. 2014-05-04 00:39:46 -07:00
Jordan Harband
c77be55cdc Updating "nvm run" tests. 2014-05-04 00:39:32 -07:00
Jordan Harband
e195fccdb7 Escaping backticks 2014-05-03 23:29:21 -07:00
Jordan Harband
87516039a8 Using portable conditional syntax. 2014-05-02 23:28:42 -07:00
Koen Punt
80e349edb1 locate .nvmrc without find
instead of using find and actually cd'ing into directories
we're now using simple string replacement on the `pwd`
2014-05-02 23:02:34 -07:00
Jordan Harband
038c1f3d0f Find .nvmrc files upwards. 2014-05-02 23:02:34 -07:00
Jordan Harband
66455f7c77 Refactor so "finding .nvmrc" can be done in a bash function. 2014-05-02 23:02:34 -07:00
Jordan Harband
a69eae10e3 Merge pull request #405 from reqshark/master
github raw served from new subdomain
2014-04-26 10:03:41 -07:00
Bent Cardan
13b87449e8 github raw served from new subdomain 2014-04-26 03:48:06 -04:00
Jordan Harband
222250f2d1 v0.5.1 2014-04-25 10:47:59 -07:00
Jordan Harband
77f4490391 Using markdown footnotes. 2014-04-25 10:47:07 -07:00
Jordan Harband
0871131dfd Make sure nvm-exec can use .nvmrc logic. Fixes #402, obviates #403. 2014-04-25 10:38:21 -07:00
Jordan Harband
e6bd207624 When auto-printing "help" on a command other than "help", return a nonzero exit code. 2014-04-25 10:35:52 -07:00
Jordan Harband
bad79e6d77 v0.5.0 2014-04-20 00:36:12 -07:00
Jordan Harband
d07fa2db10 Merge pull request #399 from creationix/run_use_nvmrc
Make sure `nvm run` works without a version argument when .nvmrc specifies a version
2014-04-20 00:35:59 -07:00
Jordan Harband
20953ab04c Make sure nvm run works without a version argument when .nvmrc specifies a version. 2014-04-20 00:28:07 -07:00
Jordan Harband
4cf940153c Use node 0.9 for these testsso that people aren't likely to have it installed 2014-04-19 23:41:36 -07:00
Jordan Harband
47bbf93f50 Travis CI defaults to ruby; c will be faster 2014-04-19 22:59:30 -07:00
Jordan Harband
7976a1343f Merge pull request #398 from creationix/install_use_nvmrc
`nvm install` and `nvm run` use .nvmrc when version not provided
2014-04-19 22:36:33 -07:00
Jordan Harband
bf8abf1052 Make sure nvm install works without a version argument when .nvmrc specifies a version. 2014-04-19 17:07:00 -07:00
Jordan Harband
eb6031cb58 Clean up after existing nvm install tests. 2014-04-19 17:00:06 -07:00
Jordan Harband
55a6f1f06e Organizing nvm install tests better. 2014-04-19 16:48:43 -07:00
Jordan Harband
c188c1b11a Correcting help text for nvm use 2014-04-19 16:46:22 -07:00
Jordan Harband
b15ea07067 Don't clobber the latest version of 0.10 for tests. 2014-04-19 16:46:17 -07:00
Jordan Harband
752c0e4ef1 Removing trailing whitespace. 2014-04-19 14:34:47 -07:00
Jordan Harband
49364532b3 Merge pull request #391 from koenpunt/patch-1
Link to latest version of install script (0.4.0)
2014-03-27 10:19:44 -07:00
Koen Punt
9157cb4cfe Link to latest version of install script (0.4.0) 2014-03-27 10:19:00 +01:00
Jordan Harband
6dde4aac38 v0.4.0 2014-03-26 21:31:48 -07:00
Jordan Harband
96635cd2bd Merge pull request #371 from koenpunt/single-installer
Merged installer and gitless installer into one
2014-03-26 21:30:00 -07:00
Koen Punt
5342b6a04c Emulate curl with wget 2014-03-26 11:14:09 +01:00
Koen Punt
2d0c025c49 Prevent fallback 2014-03-26 11:14:08 +01:00
Koen Punt
6ed93f4c01 Force install method by setting METHOD=git/script 2014-03-26 11:14:08 +01:00
Koen Punt
3c2719a85e fix 2014-03-26 11:14:08 +01:00
Koen Punt
c47f03f996 Display error when unable to update 2014-03-26 11:11:26 +01:00
Koen Punt
300022642a git, curl and wget now all in one installer 2014-03-25 20:53:05 +01:00
Koen Punt
bce3abaa4b use comparison opts 2014-03-25 20:52:30 +01:00
Koen Punt
9f6280265a updated README 2014-03-25 20:52:30 +01:00
Koen Punt
7211c9ee29 updated output without special characters (tab; \t)
Omit duplicate 'finish line'
normalized indentation
2014-03-25 20:51:39 +01:00
Koen Punt
246caa8581 Updated source string, use hard path as NVM is not always installed in $HOME/.nvm 2014-03-25 20:51:39 +01:00
Koen Punt
1fac49f887 replaced undocumented option for specifying the profile as first argument to specifying it as a environment variable (eg: PROFILE=~/.myprofile ./install-gitless.sh)
also; fixed indentation and added .zshrc as possible profile
2014-03-25 20:51:39 +01:00
Koen Punt
d2422a623a made NVM_DIR and NVM_SOURCE configurable using environment variables 2014-03-25 20:51:39 +01:00
Koen Punt
fcc00b22b7 don't make use of pushd and popd as they are not universal 2014-03-25 20:51:39 +01:00
Koen Punt
0787a55999 replaced fatalExit function for 'inline' exit
exit on errors (set -e)
simplified if for NVM_DIR and NVM_SOURCE, corrected indentation
2014-03-25 20:51:39 +01:00
Jordan Harband
7c45d62b37 Merge pull request #388 from koenpunt/small-fixes
Use NVM_ prefix for non local variables
2014-03-23 11:56:09 -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
Koen Punt
ec7909dcd3 Use NVM_ prefix for variables 2014-03-23 16:42:38 +01:00
Jordan Harband
cf5f195d75 Merge pull request #387 from koenpunt/patch-1
Add travis badge to README
2014-03-22 14:00:46 -07:00
Koen Punt
9f0520cdd0 Add travis badge to README 2014-03-22 21:19:43 +01:00
Jordan Harband
d950c1a0ea Adding a trailing newline 2014-03-22 13:10:18 -07:00
Jordan Harband
6123fbcd31 Merge pull request #386 from koenpunt/multi-shell-test
Add Makefile for multishell testing
2014-03-22 13:08:50 -07:00
Koen Punt
def7ec5364 install shells before running tests 2014-03-22 18:51:39 +01:00
Koen Punt
52a384a0cc Add Makefile for multishell testing
updated nvm current test for zsh
2014-03-22 18:47:15 +01:00
Jordan Harband
ba1e2f1cdf Merge pull request #382 from koenpunt/version-normalizing
Fix nvm ls for v* numbers
2014-03-21 09:30:19 -07:00
Jordan Harband
625e54880f Merge pull request #374 from koenpunt/fix-tests
Fix NVM_DIR discovery
2014-03-21 09:27:13 -07:00
Jordan Harband
cebda7d35a When curl is not present, immediately bail out of nvm install with a nonzero exit code. Fixes #385. 2014-03-21 09:23:30 -07:00
Koen Punt
4a9a15c404 Fix NVM_DIR discovery 2014-03-21 10:03:16 +01:00
Jordan Harband
31c5406780 Adding an nvm --version command 2014-03-20 23:21:01 -07:00
Koen Punt
a34c080d77 Fix nvm ls for v* numbers
Previously calling nvm ls with v* number (nvm ls v0.2)
would not return any results.

So now the v is prepended if its not already there
2014-03-18 10:53:57 +01:00
Koen Punt
0b97ee1d2a Failing test for when using nvm ls with v* version 2014-03-18 10:49:44 +01:00
Jordan Harband
1ded21c10d Merge pull request #383 from koenpunt/nvm-prefixed
define all functions with nvm_ prefix
2014-03-17 18:07:00 -07:00
Koen Punt
e30424d22f define all functions with nvm_ prefix 2014-03-18 01:41:02 +01:00
Jordan Harband
78e7aa6b67 Merge pull request #380 from koenpunt/fix-current-test
Double == causes error on travis (dash shell)
2014-03-17 12:05:26 -07:00
Koen Punt
ae4c841742 Double == causes error on travis (dash shell) 2014-03-17 19:44:40 +01:00
Jordan Harband
4f9324c439 Merge pull request #377 from koenpunt/remove-obscure-echo-test
Replaced echo for printf when using formatted strings
2014-03-17 10:02:54 -07:00
Jordan Harband
020f61500f Merge pull request #378 from koenpunt/ci
Added travis config, fixed tests for use on travis
2014-03-17 09:59:42 -07:00
Koen Punt
38a0c997e2 Added travis config, fixed tests for use on travis 2014-03-17 14:33:25 +01:00
Koen Punt
70f1734c12 updated tests for altered output 2014-03-17 13:24:24 +01:00
Koen Punt
1d40a5bc8b Replaced echo for printf when using formatted strings
Updated version list, now also compatible with zsh
2014-03-17 13:19:39 +01:00
Jordan Harband
db4c582d79 Merge pull request #366 from messju/nvm_version_fix
fixed nvm_version result when multiple versions match the given pattern
2014-03-15 13:17:36 -07:00
messju mohr
e46ee7b30b added test for using the latest of two versions 2014-03-15 20:42:38 +01:00
messju mohr
f82f38be90 fixed nvm_version result when multiple versions match the given pattern 2014-03-15 20:42:38 +01:00
Jordan Harband
3a21485050 Files should end in trailing newlines 2014-03-15 11:41:50 -07:00
Jordan Harband
e6887d500f Merge pull request #319 from koenpunt/nvm-exec
nvm exec wrapper to execute commands with a specific node version
2014-03-15 11:40:02 -07:00
Jordan Harband
472d23b990 Merge pull request #372 from koenpunt/patch-1
Use has util method and use comparison opts
2014-03-15 10:48:41 -07:00
Koen Punt
1a19de9d20 Use has util method and use comparison opts 2014-03-15 15:59:46 +01:00
Koen Punt
f3d1770e3e nvm exec wrapper to execute commands with a specific node version 2014-03-15 15:58:32 +01:00
Jordan Harband
ba2a850253 Adding a CONTRIBUTING.md file 2014-03-14 23:21:31 -07:00
Jordan Harband
618a372f38 Unset the executable bit on nvm.sh, since it's meant to be sourced 2014-03-14 22:10:52 -07:00
Jordan Harband
a09a028c38 Merge pull request #270 from hachre/patch-1
Switch from /bin/sh to /bin/bash
2014-03-14 22:10:07 -07:00
Jordan Harband
d78905988e Merge pull request #310 from danieltdt/grep-options
Overwritting GREP_OPTIONS on local script
2014-03-14 13:10:56 -07:00
Daniel Teixeira
8cceae3cc1 Overwritting GREP_OPTIONS on local script
(recommiting to automerge into current master)
2014-03-14 14:58:51 -03:00
Jordan Harband
192e381971 Merge pull request #370 from jpadilla/patch-1
Detect if curl or wget is installed to download NVM_SOURCE
2014-03-13 14:26:44 -07:00
José Padilla
966ff0e1b0 Fix for running with bash, sh, and zsh 2014-03-13 10:31:34 -04:00
José Padilla
b90a0a811e Use 2-space indentation for consistency 2014-03-12 14:33:00 -04:00
José Padilla
25ca41c9dc Detect if curl or wget is installed 2014-03-12 09:07:48 -04:00
Jordan Harband
0d44ed1126 Merge pull request #364 from frasertweedale/fix/portability
Fix/portability
2014-03-04 17:31:17 -08:00
Jordan Harband
dc53a37d4f Merge pull request #277 from frasertweedale/fix/freebsd-sha1
support FreeBSD's sha1(1) for integrity checks
2014-02-27 01:25:23 -08:00
Fraser Tweedale
332ae1afcb use a more portable release in install tests
The tests for nvm install currently install v0.8.6, which doesn't
build on FreeBSD due to Linuxisms.  Switch to a more recent version
that does work.
2014-02-22 12:20:15 +10:00
Fraser Tweedale
9108a7f7fa remove duplicate install test
`test/slow/install` is identical to `test/slow/install from source`
except in the version installed.  Remove it.
2014-02-22 12:20:15 +10:00
Fraser Tweedale
3b21b76106 fix install from source on FreeBSD 10
Compile with CXX=c++ on FreeBSD, as FreeBSD >= 10.0 no longer has
GCC in the base system (c++ is hardlinked to clang++ on FreeBSD 10.0
and g++ on FreeBSD < 10).
2014-02-22 11:58:39 +10:00
Fraser Tweedale
dcba513108 address remaining comments from #363 2014-02-22 11:25:45 +10:00
Fraser Tweedale
e6a5374bfb colorize output only if echo supports it 2014-02-22 00:06:53 +10:00
Fraser Tweedale
8cba9c5781 avoid nullglob in alias command 2014-02-22 00:00:10 +10:00
Fraser Tweedale
1d6145de5a fix explicit version matching on FreeBSD
FreeBSD's regular expression library does not like the pattern used
for matching explicit version strings in `nvm_ls`.  Change the
pattern to something more specific that works on FreeBSD.
2014-02-21 23:25:45 +10:00
Fraser Tweedale
ca0c8a7f1d handle echo implementations that do not support -e 2014-02-21 22:10:17 +10:00
Fraser Tweedale
21771e7369 fix logic error in nvm deactivate test 2014-02-21 21:06:53 +10:00
Fraser Tweedale
a3331ffdb0 fix errors due to use of unportable == operator
The `==` operator is not defined by POSIX and many test(1) (also
spelled `[`) implementations do not support it.  Replace uses of
`==` with the POSIX-conformant `=` equality operator.
2014-02-21 21:05:40 +10:00
Fraser Tweedale
4a5f5203d0 fix errors and portability issues in expr commands
Add double-quotes around all expr(1) left-hand-sides where the
argument is just a variable, to prevent syntax errors when the
variable is empty.

Also avoid the `expr match ...` variant as this is not defined in
POSIX and causes errors in some implementations, including
FreeBSD's.
2014-02-21 20:52:50 +10:00
Fraser Tweedale
ee6d4ab074 fix ls command in dash
The `colorize_version` command fails in dash (default /bin/sh on
Ubuntu) with an error like:

  local: v0.2.3: bad variable name

Instead of using a local variable, interpolate the function argument
directly to avoid the error.
2014-02-21 20:24:27 +10:00
Fraser Tweedale
8925419e90 tests: avoid reliance on nullglob
Some shells do not have a nullglob feature, including dash (default
/bin/sh on Ubuntu) and the Almquist shell (default /bin/sh on
FreeBSD).  An mv(1) command in setup_dir is failing due to a glob
not matching anything, so use a more widely supported construction.
2014-02-21 19:21:03 +10:00
Dr. Kibitz
0f709eafa0 Missed tests 2014-02-18 22:07:25 -08:00
Dr. Kibitz
a9be598241 Remove some new bashisms 2014-02-18 21:57:59 -08:00
Dr. Kibitz
9a0c269713 Redo https://github.com/creationix/nvm/pull/345 2014-02-18 21:51:39 -08:00
Fraser Tweedale
0c8410fcc3 support FreeBSD's sha1(1) for integrity checks
In the absense of shasum(1) (which on FreeBSD is provided by Perl,
from ports) nvm falls back to sha1sum(1) which does not exist on
FreeBSD.  But FreeBSD does have sha1(1) so look for sha1(1) and use
it if present.

As part of this change, refactor the execution of the checksum
program down into nvm_checksum and also clean up some special-casing
of empty dist checksums, which is already handled by nvm_checksum.
2014-02-18 22:22:46 +10:00
Jordan Harband
12d7b6fa0c Merge pull request #361 from drkibitz/local-vars
Declare more variables as local
2014-02-16 11:20:21 -08:00
Jordan Harband
274652e10e Fix nvm ls-remote and display uninstalled versions again. Fixes #359, closes #360 2014-02-16 09:35:05 -08:00
Dr. Kibitz
2e9558cbf9 Declare more variables as local 2014-02-16 01:05:24 -08:00
Jordan Harband
13781f242b Create a colorize_version function that doesn't include the padding, for nvm version 2014-02-15 18:12:24 -08:00
Jordan Harband
b6469ee186 Preventing an extra leading newline. 2014-02-15 18:12:24 -08:00
Jordan Harband
304cc29cf0 Fixing indentation and adding a trailing newline. 2014-02-15 16:02:27 -08:00
Jordan Harband
0d5ee024d1 Merge pull request #356 from geekjuice/master
Change variable name to fix zsh parse issue
2014-02-11 20:38:09 -08:00
Nicholas Hwang
9a88e3656c Change variable name to fix zsh parse issue 2014-02-11 22:55:02 -05:00
Jordan Harband
c19535a3f5 Merge pull request #354 from simontabor/patch-1
don't curl if version is specified + installed
2014-02-07 10:32:23 -08:00
Simon Tabor
9af7409e4a don't curl if version is specified + installed
Removes CURL to match the version pattern if an explicit version (e.g. `v0.10.25`) is specified and already installed.
2014-02-06 13:02:57 +00:00
Jordan Harband
eca6118023 Merge pull request #352 from gdi2290/patch-1
update copyright year range in readme
2014-02-03 19:30:52 -08:00
PatrickJS
50485d641b update copyright year range in readme 2014-02-03 17:07:56 -08:00
Jordan Harband
cd378cb170 Merge pull request #351 from gdi2290/patch-1
update copyright year range
2014-02-03 14:27:25 -08:00
PatrickJS
db7e0976f2 update copyright year range 2014-02-03 13:41:27 -08:00
Jordan Harband
ecb7a15baa Using our conventional NVM_ prefix for env vars.
Per https://github.com/creationix/nvm/pull/245#issuecomment-33821443
2014-01-31 10:01:37 -08:00
Jordan Harband
5f225cd625 Merge pull request #245 from rgbkrk/mirror_z
Add mirror option for node binaries. Relates to #255.
2014-01-30 21:25:46 -08:00
Kyle Kelley
8599ea29f9 Add dist to path, add docs 2014-01-30 19:22:44 -08:00
Kyle Kelley
b1d0cfa77b Added mirror option for node binaries 2014-01-30 19:16:36 -08:00
Jordan Harband
a0a2ee4414 Merge pull request #349 from zyxar/master
Fixes #346
2014-01-14 21:59:30 -08:00
Markus Z
60e66fa7be Fixes #346 2014-01-15 12:48:08 +08:00
Jordan Harband
45eff43cd0 Merge pull request #342 from txgruppi/master
export NODE_PATH on nvm use
2014-01-13 21:08:17 -08:00
Tarcisio Gruppi
eb588566f2 Removed PREVIOUS_NODE_PATH 2014-01-13 09:15:45 -02:00
Jordan Harband
17daa68a35 Merge pull request #344 from dhoppe/patch-1
Update nvm.sh
2014-01-03 10:16:53 -08:00
Dennis Hoppe
47c87b8478 Update nvm.sh
Examples should point to latest stable release. ;)
2014-01-03 14:45:46 +01:00
Tarcisio Gruppi
58dafdaedd Update NODE_PATH on use, run and deactivate 2014-01-01 02:04:37 -02:00
Tarcisio Gruppi
4d2faba9af export NODE_PATH on nvm use 2013-12-31 22:35:19 -02:00
Jordan Harband
bc4c5644f5 Merge pull request #335 from naartjie/#299
fix copy-packages in zsh
2013-12-26 11:02:28 -08:00
Marcin Jekot
950da2b836 Merge branch 'master' into #299 2013-12-25 18:14:24 +02:00
Jordan Harband
2459843b92 Merge pull request #279 from frasertweedale/fix/readme-shell-names
readme: be inclusive of zsh when discussing shells
2013-12-23 14:16:42 -08:00
Fraser Tweedale
58033251fd readme: be inclusive of zsh when discussing shells
Much of the discussion in the README pertains to zsh as much as
bash, so include a specific reference to ~/.zshrc and remove one
explicit reference to bash.
2013-12-24 07:24:31 +10:00
Jordan Harband
8df2dd2ba8 Merge pull request #278 from frasertweedale/fix/manpath
fix MANPATH generation on FreeBSD
2013-12-23 10:11:06 -08:00
Fraser Tweedale
591a3bb19d fix MANPATH generation on FreeBSD
On FreeBSD, if MANPATH is set it is used verbatim; configuration
files are completely ignored.  Therefore, setting MANPATH to (only)
the nvm man dir makes system man pages unreachable.

To get around this, before doing anything else to MANPATH, if it is
empty set it to the output of manpath(1).

One further complication: FreeBSD automatically adds a path to the
man pages path for each path in PATH that ends in "/bin", which
causes "~/.nvm/$VERSION/man" to be added.  This interferes with the
subsequent substitution so strip this from MANPATH before the
substitution.
2013-12-23 21:31:18 +10:00
Marcin Jekot
679c71650f fix copy-packages in zsh
fixes #299, finally, using the local var syntax
2013-12-18 17:21:00 +02:00
Jordan Harband
5c7996da5b Merge pull request #332 from ljharb/add_package_json
Add package json
2013-12-17 13:17:52 -08:00
Jordan Harband
9021cf579a Updating the README. 2013-12-17 13:12:05 -08:00
Jordan Harband
7afe2c5e2d Add a package.json. 2013-12-17 13:12:05 -08:00
Jordan Harband
8143f5a618 ignore more urchin output. 2013-12-17 13:07:52 -08:00
Jordan Harband
c211357e70 Ignore node_modules. 2013-12-17 13:07:02 -08:00
Jordan Harband
3eb09ab984 Merge pull request #330 from mibamur/patch-1
Update nvm.sh
2013-12-17 10:25:24 -08:00
Michael
670870e211 Update nvm.sh
fix#https://github.com/creationix/nvm/pull/330
2013-12-18 02:07:02 +09:00
Michael
74ca011704 Update nvm.sh
fix https://github.com/creationix/nvm/pull/330
2013-12-18 02:06:23 +09:00
Jordan Harband
83c5b6286d Add nvm current to nvm help. Relates to #205. 2013-12-16 23:40:47 -08:00
Jordan Harband
d7015c7f65 Merge pull request #205 from deiga/add-current-command
Added command to get current nvm environment.
2013-12-16 23:39:23 -08:00
Timo Sand
4ca71d81cf Changed test according to comments 2013-12-17 08:28:31 +02:00
Jordan Harband
ed69b5cc71 Merge pull request #331 from deiga/patch-1
Update README.markdown
2013-12-16 22:06:54 -08:00
Timo Sand
f9d5a85f05 Merge branch 'master' into add-current-command 2013-12-17 08:06:16 +02:00
Timo Sand
1f3ea299fa Update README.markdown 2013-12-17 08:01:06 +02:00
Michael
b2ef0cb14c Update nvm.sh
Fix - this line should be nvm use 0.10 - no 'v', and no incremental version number.
2013-12-16 23:25:50 +09:00
Michael
59c4dc735a Update nvm.sh
small fix fo nvm help info
2013-12-16 05:04:14 +09:00
Jordan Harband
ce7d2e7618 Merge pull request #328 from naartjie/master
fix copy-packages in zsh (without breaking sh and bash). Closes #223, fixes #299.
2013-12-15 10:32:41 -08:00
Marcin Jekot
4df45ac51a merge in changes from creationix/nvm 2013-12-15 11:27:15 +02:00
Jordan Harband
8573b95a2d Merge pull request #327 from stuartf/issue-314
fix copy-packages
2013-12-13 15:37:28 -08:00
Marcin Jekot
94fff5c923 fix copy-packages in zsh (without breaking sh and bash) 2013-12-14 01:14:34 +02:00
D. Stuart Freeman
56e32888ea fix copy-packages 2013-12-12 10:52:43 -05:00
Jordan Harband
b186b6327a Merge pull request #326 from koenpunt/has-command-helper
helper method for testing existence of commands
2013-12-12 02:21:52 -08:00
Koen Punt
e99fc43ab2 helper method for testing existence of commands 2013-12-12 10:46:40 +01:00
Jordan Harband
cf515c4ff8 Merge pull request #324 from hurrymaplelad/quiet_type
Slurp stderr from  test unsetopt
2013-12-11 18:32:06 -08:00
Adam Hull
037f52a55b Slurp test unsetopt stderr 2013-12-11 15:23:19 -08:00
Jordan Harband
b714db7a95 Merge pull request #322 from koenpunt/fix-unsetopt-test
Universal test of unsetopt command. Closes #300
2013-12-11 09:28:58 -08:00
Koen Punt
aba4346a86 Universal test of unsetopt command
According to http://stackoverflow.com/a/7522866/189431 it should work in "bash, zsh, ksh and sh (as provided by dash)".
2013-12-11 13:49:58 +01:00
Timo Sand
dc7a42062e Added test for nvm current 2013-10-10 07:58:51 +03:00
Timo Sand
dd157129a6 Added command to get current nvm environment. 2013-10-10 07:56:57 +03:00
Harald Glatt
2eddca3d9f Remove unneeded shebang in nvm.sh 2013-07-23 17:24:07 +02:00
Harald Glatt
6a6e435855 Switch from /bin/sh to /bin/bash
You have bashisms in your script and /bin/sh might not always be bash. In that case the script would fail (for example on Ubuntu).
2013-07-21 08:17:51 +02:00
65 changed files with 1588 additions and 411 deletions

6
.gitignore vendored
View File

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

View File

@@ -1,3 +1,4 @@
src src
v* v*
alias alias

29
.travis.yml Normal file
View 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
View 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!

View File

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

View File

@@ -1,4 +1,4 @@
# Node Version Manager # Node Version Manager [![Build Status](https://travis-ci.org/creationix/nvm.svg?branch=master)][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.15.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.15.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,21 @@ 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
`nvm use` will, by defaut, create a "current" symlink. Set `$NVM_SYMLINK_CURRENT` to any value other than "true" to disable this behavior.
## 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 +95,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 +138,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 +168,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.15.0/install.sh
[3]: https://travis-ci.org/creationix/nvm
[Urchin]: https://github.com/scraperwiki/urchin

View File

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

View File

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

View File

@@ -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.15.0 && git branch -D master || true
}
install_nvm_as_script() {
if [ -z "$NVM_SOURCE" ]; then
NVM_SOURCE="https://raw.githubusercontent.com/creationix/nvm/v0.15.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
View 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 $@

779
nvm.sh Executable file → Normal file

File diff suppressed because it is too large Load Diff

33
package.json Normal file
View File

@@ -0,0 +1,33 @@
{
"name": "nvm",
"version": "0.15.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"
}
}

View File

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

View File

@@ -0,0 +1,7 @@
#!/bin/sh
. ../../../nvm.sh
nvm ls nonexistent_version
[ "$?" = "3" ]

View File

@@ -0,0 +1,7 @@
#!/bin/sh
. ../../../nvm.sh
nvm ls node
[ "$?" = "3" ]

View File

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

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

View File

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

View File

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

View File

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

View 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

View File

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

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

View File

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

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

View 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

View File

@@ -0,0 +1,83 @@
#!/bin/bash
. ../../nvm.sh
TEST_NODE_VERSION="v0.10.29"
TEST_COUNT=0
TEST_PASSED=0
TEST_FAILED=0
function registerExpectedSymlink() {
registerResult ${1}
}
function registerExpectedNoSymlink() {
[ ${1} -ne 0 ]
registerResult $?
}
function registerResult() {
result=${1}
TEST_COUNT=$(($TEST_COUNT + 1))
[ ${result} -eq 0 ] \
&& TEST_PASSED=$(($TEST_PASSED + 1)) \
|| TEST_FAILED=$(($TEST_FAILED + 1))
}
function cleanup() {
rm -rf ../../${TEST_NODE_VERSION}
rm -f ../../current
}
function runNvmUse() {
mkdir ../../${TEST_NODE_VERSION}
nvm use ${TEST_NODE_VERSION} &> /dev/null
rmdir ../../${TEST_NODE_VERSION}
}
function isCurrentSymlinkPresent() {
[ -L ../../current ]
}
NVM_SYMLINK_CURRENT=false
cleanup
runNvmUse
isCurrentSymlinkPresent && echo "Expected 'current' symlink not to be created when NVM_SYMLINK_CURRENT=false!"
registerExpectedNoSymlink $?
NVM_SYMLINK_CURRENT=true
cleanup
runNvmUse
isCurrentSymlinkPresent || echo "Expected 'current' symlink to be created when NVM_SYMLINK_CURRENT=true!"
registerExpectedSymlink $?
NVM_SYMLINK_CURRENT=garbagevalue
cleanup
runNvmUse
isCurrentSymlinkPresent && echo "Expected 'current' symlink not to be created when NVM_SYMLINK_CURRENT contains a string!"
registerExpectedNoSymlink $?
NVM_SYMLINK_CURRENT=0
cleanup
runNvmUse
isCurrentSymlinkPresent && echo "Expected 'current' symlink not to be created when NVM_SYMLINK_CURRENT=0!"
registerExpectedNoSymlink $?
NVM_SYMLINK_CURRENT=1
cleanup
runNvmUse
isCurrentSymlinkPresent && echo "Expected 'current' symlink not to be created when NVM_SYMLINK_CURRENT=1!"
registerExpectedNoSymlink $?
unset NVM_SYMLINK_CURRENT
cleanup
runNvmUse
isCurrentSymlinkPresent || echo "Expected 'current' symlink to be created when NVM_SYMLINK_CURRENT has been unset (default behaviour)!"
registerExpectedSymlink $?
cleanup
[ ${TEST_FAILED} -ne 0 ] && echo "${TEST_COUNT} tested, ${TEST_PASSED} passed, ${TEST_FAILED} failed" && exit 1 || true

View File

@@ -0,0 +1,18 @@
#!/bin/sh
cleanup () {
rm tmp/emptyfile tmp/testfile
rmdir tmp
}
die () { echo $@ ; cleanup; exit 1; }
. ../../../nvm.sh
mkdir -p tmp
touch tmp/emptyfile
echo -n "test" > tmp/testfile
nvm_checksum tmp/emptyfile "da39a3ee5e6b4b0d3255bfef95601890afd80709" || die "nvm_checksum on an empty file did not match the SHA1 digest of the empty string"
nvm_checksum tmp/testfile "da39a3ee5e6b4b0d3255bfef95601890afd80709" && die "nvm_checksum allowed a bad checksum"
cleanup

View 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

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

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

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

View 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

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

View File

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

View File

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

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

View File

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

View File

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

View File

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

View 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

View 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 recursive-blame uglify-js yo"
echo "$EXPECTED_PACKAGES" | xargs npm install -g --quiet
nvm use 0.10.29
ORIGINAL_PACKAGES=$(npm list -g --depth=0 | tail -n +2 | \grep -o -e ' [^@]*' | cut -c 2- | \grep -v npm | sort | uniq | xargs)
nvm copy-packages 0.10.28
FINAL_PACKAGES=$(npm list -g --depth=0 | tail -n +2 | \grep -o -e ' [^@]*' | cut -c 2- | \grep -v npm | sort | uniq | xargs)
[ "$FINAL_PACKAGES" = "$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)"

View 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

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

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

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"

View 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

View 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

View 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

View File

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

View File

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

View File

@@ -0,0 +1,6 @@
#!/bin/sh
if [ -f ".nvmrc" ]; then
mv .nvmrc .nvmrc.bak
fi

View 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

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

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