Compare commits

...

83 Commits

Author SHA1 Message Date
Jordan Harband
40e40975eb v0.33.0 2016-12-29 21:22:13 -10:00
Jordan Harband
ae8eb80d0b make release should pop up the EDITOR for the annotated tag. 2016-12-29 21:22:08 -10:00
Jordan Harband
186509be24 [github] modify the issue template 2016-12-28 09:04:12 -10:00
Jordan Harband
853afbf595 Revert "Revert "[Fix] set -u: ensure that potentially unbound variables aren’t called unchecked.""
This reverts commit a8c465018e.

Fixes #1363.
2016-12-26 21:57:55 -08:00
Jordan Harband
a8c465018e Revert "[Fix] set -u: ensure that potentially unbound variables aren’t called unchecked."
This reverts commit 60239e39cd.
2016-12-25 12:18:56 -08:00
Jordan Harband
1cac5194b9 [github] Flesh out issue template a bit. 2016-12-25 12:07:08 -08:00
Peter Dave Hello
71b49f1744 Add GitHub issue template 2016-12-26 02:46:49 +08:00
Jordan Harband
60239e39cd [Fix] set -u: ensure that potentially unbound variables aren’t called unchecked.
Fixes #1363.
2016-12-25 11:31:37 -08:00
Jordan Harband
0f6997d90a [Tests] remove the unused and broken $NVM_PATH. 2016-12-16 11:23:23 -08:00
Jordan Harband
fcd6331f09 [Fix] remove the unused and broken $NVM_PATH.
Added in 359a83e. Fixes #1353.
2016-12-16 10:57:22 -08:00
Peter Dave Hello
2af47b0034 [Docs] Remove mixed addtional indent in the Bash completion codeblock 2016-12-03 21:33:54 +08:00
Peter Dave Hello
7c0dc2be68 [Docs] Make the indent in readme consistenly use soft tabs 2016-12-03 21:32:41 +08:00
Peter Dave Hello
d5340539d9 [Docs] Link version badge to the release page 2016-12-02 19:33:48 +08:00
Peter Dave Hello
45771499ee [Fix] nvm should respect CC/CXX env var
- Also set CC for Freebsd, not only CXX

 - Also set CC=cc, CXX=c++ on Mac OS by default as upstream

Reference:
1bd871655a/configure (L16-L17)
2016-11-29 15:30:01 +08:00
Peter Dave Hello
84575cf353 [Refactor] Use "case" instead of multi "if" 2016-11-28 03:39:48 +08:00
Jordan Harband
47c60dfc1d [Tests] add test to ensure that nvm unload unloads all functions. 2016-11-28 12:50:35 -08:00
Peter Dave Hello
c96c561c88 [Fix] nvm unload missed node_version_has_solaris_binary() 2016-11-28 18:35:32 +08:00
Peter Dave Hello
f29cd1a2ab [Fix] nvm unload missed NVM_CD_FLAGS NVM_BIN NVM_MAKE_JOBS NVM_PATH 2016-11-28 04:14:21 +08:00
Peter Dave Hello
00a1ee6c4d [Fix] nvm unload missed nvm_cache_dir() nvm_cd() 2016-11-28 04:10:42 +08:00
George Adams
a7648ebd9f [Fix] nvm install -s: aix: detect number of threads on aix and not just number of processors 2016-11-23 06:36:52 -05:00
Peter Dave Hello
26fec8035f [Docs] update alpine environment installation info 2016-11-28 02:43:59 +08:00
Peter Dave Hello
c58540666d [Docs] update readme about compile nodejs v0.10+ from src 2016-11-27 21:21:49 +08:00
Gibson Fahnestock
7f1917d0aa [Refactor] Rename NVM_CPU_THREADS to NVM_CPU_CORES 2016-11-24 18:04:14 +00:00
Peter Dave Hello
7d08ad4311 [Tests] also cache $HOME/.ghc for cabal 2016-11-25 23:57:08 +08:00
Jordan Harband
5b820a453c [Refactor] avoid S2181 spellcheck error. 2016-11-25 00:56:28 -06:00
Jordan Harband
af73102481 [Fix] fix a typo i made in 20ae7ee309 2016-11-25 00:35:33 -06:00
Peter Dave Hello
20ae7ee309 [Tests] Run shellcheck on nvm-exec in Travis CI 2016-11-24 14:07:56 +08:00
Peter Dave Hello
ac63638469 [Fix] add missing quotes for $NODE_VERSION in nvm-exec 2016-11-24 13:44:39 +08:00
Peter Dave Hello
7ed1e71944 [Refactor] Add missing backslash for dots
Related: #1279, 2a2b8bd, cadbbce
2016-11-24 13:47:20 +08:00
Peter Dave Hello
b7f9fbd3a7 [Tests] run shellcheck for bash_completion in Travis CI 2016-11-24 16:00:23 +08:00
Peter Dave Hello
9963660a11 [shellcheck] SC1004,SC2086 fixes in bash_completion 2016-11-24 15:59:16 +08:00
Peter Dave Hello
60ba4bca0c [Tests] Remove not working clang part until we refactor the workflow 2016-11-24 14:38:22 +08:00
Peter Dave Hello
e47b313b85 [readme] Auto install not exist version in zsh .nvmrc script
Fixes #1272.
2016-11-14 19:44:55 +08:00
Peter Dave Hello
4b4e71f05c [shellcheck] disable "Check exit code directly" warning on line 273, 666
We need to use both the exit state and result form the previous commit,
so SC2181 should be disabled here.
2016-11-23 22:04:45 +08:00
Peter Dave Hello
5508f8dc70 [Tests] switch to use Cabal to install ShellCheck
1. This can help speed up the apt process since we decrease the
complexity of apt sources and package dependencies resolving by dropping
an additional ppa source.

2. Stack doesn't update ShellCheck to v0.4.5 after it has been released
more than one month, Cabal can provide ShellCheck v0.4.5
2016-11-23 22:04:45 +08:00
Peter Dave Hello
1ffa41886a [New] Install bash programmble completions automatically 2015-05-23 14:07:34 +08:00
Peter Dave Hello
49e8068271 [CI] Drop manual apt source and package installation
- Use Travis CI apt addon source whitelist to load apt source
 - Use Travis CI apt addon to install additional packages

This can prevent duplicating apt package list update and dependencies
calculation which means it can speed up the CI build.
2016-11-17 21:11:48 +08:00
Jordan Harband
ab6be9c0c1 Merge pull request #1300 from PeterDaveHello/clang-llvm
[New] `nvm install -s`: Use clang as C/C++ compiler if detected

Fixes #902
2016-11-17 00:19:04 -08:00
Peter Dave Hello
61ae478c38 [Doc] Add current version on the top of README 2016-11-16 21:23:20 +08:00
Peter Dave Hello
8c03637023 [Fix] nvm install: Handle 'N/A' version instead of asking to install it
Fixes #1304.
2016-11-14 19:31:35 +08:00
Peter Dave Hello
65acb403ce Add nvm_clang_version to ensure clang version > 3.5 2016-11-14 12:28:41 +08:00
Peter Dave Hello
9f67d3ef66 [Tests] Upgrade clang from llvm in Travis-ci 2016-11-14 12:04:36 +08:00
Peter Dave Hello
38934bf16c [New] nvm install -s: Use clang as C/C++ compiler if detected.
Fixes #902.
2016-11-14 05:39:34 +08:00
Peter Dave Hello
03608291a6 [caching] nvm install: Do not remove src dir after compilation succeeds
This will help speed up the installation time for the non-first time
installation, especially can speed up the build time and test time on
Travis-CI as we'll cache .cache dir.
2016-11-14 03:45:52 +08:00
Peter Dave Hello
fd33179119 Revert "Also run git gc after nvm upgraded"
This reverts commit ce7f6d6e52.
2016-11-14 06:19:29 +08:00
Jordan Harband
e5316ddbe3 [Fix] allow uninstalls when files are nonwritable but self-owned.
Fixes #1270.
2016-11-13 00:09:29 -08:00
Peter Dave Hello
eab41ed8ef [Fix] add missing "command" prefix call for some commands 2016-11-13 04:53:41 +08:00
Peter Dave Hello
c5303a6973 Improve nvm_download_artifact() process, fix #1291
- Delete broken/checksum not matched local cache
 - More output message.
2016-11-13 04:02:06 +08:00
Peter Dave Hello
7ef38cf7e8 fix/retab indent in bash_completion [no-ci] 2016-11-11 19:43:36 +08:00
George Adams
8f82eab5db Add AIX support
Currently AIX isn't supported in nvm so I have made a few small changes
to make this work:
change tar to gtar for AIX
change make to gmake for AIX
Set ARCH as ppc64 for AIX
2016-11-10 13:52:00 -05:00
Peter Dave Hello
9c92b5a4ea [New] nvm install: Print the version that is being installed 2016-11-06 20:43:47 +08:00
Peter Dave Hello
f7763c8ba9 [Tests] die() in tests should quote "$@" for echo 2016-11-07 03:34:36 +08:00
Jordan Harband
24f8ae5c46 [New] support external install hook “$NVM_INSTALL_THIRD_PARTY_HOOK”.
Fixes #1207.
2016-11-03 23:42:55 -07:00
Qiangjun Ran
cadbbced20 [Tests] Replace all dots with backslash dots 2016-11-03 23:44:59 -07:00
Qiangjun Ran
2a2b8bdeb3 [Robustness] use backslash when sourcing in case of overridden dot
Fixes #1278.
2016-11-03 23:44:20 -07:00
Jordan Harband
942e9ab1f5 [Fix] bypass aliased cd in a few places.
Fixes #1284.
2016-11-03 10:08:24 -07:00
Peter Dave Hello
a458ccbb87 Retab tab to 4 spaces and use echo instead of cat in install.sh 2016-10-29 11:17:54 +08:00
Peter Dave Hello
ce7f6d6e52 Also run git gc after nvm upgraded 2016-10-28 09:08:54 +08:00
Peter Dave Hello
f3cddf8271 [Doc] Bold leading "Note:" in readme for readability 2016-10-28 11:20:12 +08:00
Jordan Harband
589a9112bd v0.32.1 2016-10-18 13:16:51 -07:00
Jordan Harband
76fe1ab1c6 [Fix] ensure that lts/* points to boron/latest, not argon/earliest.
- update test mocks
 - fix tests for Boron release

Fixes #1268.
2016-10-18 11:33:07 -07:00
sunxiaobo
a338f98a5a accerlate nvm invoke when change directory 2016-10-14 16:31:26 +08:00
Hiro Asari
4b88613508 Consolidate APT packages
Consolidate APT packages definition into one place, so that the folding is displayed correctly.
2016-10-12 13:58:24 -04:00
Atsushi Yamamoto
3342367981 Fix indent at L2672 2016-10-08 18:01:27 -07:00
Jordan Harband
f9e14b7d4d [Fix] nvm uninstall: work around nomatch zsh option.
Fixes #1228.
2016-10-04 01:43:24 -07:00
Jordan Harband
a29d0e49dc [Tests] improve + update test mocks 2016-09-28 22:42:48 -07:00
Peter Dave Hello
702d52f23b update test mocks 2016-09-29 10:27:24 +08:00
Joseph Frazier
7ca1186dbc Fix "Manual upgrade" link in readme 2016-09-27 21:40:36 -04:00
Jordan Harband
160a39c844 [Refactor] fix copy-paste error from 5c68141ede 2016-09-18 19:06:18 -07:00
Jordan Harband
d12ccb130d [Fix] zsh: when warncreateglobal is set, this line warns for some reason. Use env to suppress it.
Fixes #1236.
2016-09-18 13:39:50 -07:00
Jordan Harband
acbdd9a3fa [Fix] Fix trailing whitespace in nvm ls-remote 2016-09-18 12:26:06 -07:00
Jordan Harband
f60edbb6b4 [Tests] update test mocks 2016-09-18 11:58:18 -07:00
Jordan Harband
256e75c789 [Fix] Remove un-local var EXIT_CODE.
Might possibly be a fix to part of #1236
2016-09-18 02:00:32 -07:00
Peter Dave Hello
8b3cf6cbcb add a menu for readme for easier readability 2016-09-18 16:10:21 +08:00
Jordan Harband
5c68141ede [Refactor] nvm ls-remote: make the main ls-remote command call into nvm_remote_versions directly. 2016-09-15 23:52:01 -07:00
Jordan Harband
dc1d3aa943 [Refactor] nvm_install_source, nvm_install_binary, nvm_download_artifact: ensure a version is provided. 2016-09-17 09:24:42 -07:00
Jordan Harband
51b21bcad1 [Refactor] Use ||: and &&: when appropriate 2016-09-16 23:16:58 -07:00
Erez Zukerman
4a7973ea61 Removes fin from the readme
If you go to the [fin repo](https://github.com/fisherman/fin) you'll see that it isn't a node version manager, but simply a plugin manager for Fish. Seems out of scope for the readme, and there are other plugin solutions for fish as well. I suggest removing the reference.
2016-09-13 10:25:17 -04:00
Peter Dave Hello
68761c3200 Manually run git gc after nvm installation, fix #1226 2016-09-17 13:24:04 +08:00
Peter Dave Hello
ef5670fd82 Bump to require git v1.7+ and add docs, fix #1232 2016-09-17 13:23:04 +08:00
b264
9db5c06a63 [Docs] copyedit readme 2016-09-16 16:19:55 -05:00
Jordan Harband
3b5f088e01 [Refactor] nvm_ls_remote_index_tab: clean up to use nvm_get_mirror 2016-09-15 22:45:10 -07:00
Jordan Harband
dca0220275 [Refactor] nvm_install_binary: remove unused nvm_get_mirror call 2016-09-15 21:40:44 -07:00
189 changed files with 1706 additions and 1286 deletions

41
.github/ISSUE_TEMPLATE.md vendored Normal file
View File

@@ -0,0 +1,41 @@
<!-- Thank you for being interested in nvm! Please help us by filling out the following form if youre having trouble. If you have a feature request, or some other question, please feel free to clear out the form. Thanks! -->
- Operating system and version:
- `nvm debug` output:
<details>
<!-- do not delete the following blank line -->
```sh
```
</details>
- `nvm ls` output:
<details>
<!-- do not delete the following blank line -->
```sh
```
</details>
- How did you install `nvm`? (e.g. install script in readme, homebrew):
- What steps did you perform?
- What happened?
- What did you expect to happen?
- Is there anything in any of your profile files (`.bashrc`, `.bash_profile`, `.zshrc`, etc) that modifies the `PATH`?
<!-- if this does not apply, please delete this section -->
- If you are having installation issues, or getting "N/A", what does `curl -v nodejs.org/dist/` print out?
<details>
<!-- do not delete the following blank line -->
```sh
```
</details>

View File

@@ -7,30 +7,33 @@ addons:
packages:
- gcc-4.8
- g++-4.8
apt_packages:
- cabal-install
- ghc
- zsh
- ksh
cache:
directories:
- $HOME/.stack
- $HOME/.ghc
- $HOME/.cabal
- $TRAVIS_BUILD_DIR/.cache
before_install:
- $SHELL --version 2> /dev/null || dpkg -s $SHELL 2> /dev/null || which $SHELL
- curl --version
- wget --version
- if [ -n "${SHELLCHECK-}" ]; then sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys 575159689BEFB442 && echo 'deb http://download.fpcomplete.com/ubuntu precise main' | sudo tee /etc/apt/sources.list.d/fpco.list && sudo apt-get update && sudo apt-get install stack bc -y && stack setup && stack install ShellCheck && shellcheck --version ; fi
- if [ -n "${SHELLCHECK-}" ]; then cabal update && cabal install transformers-0.4.3.0 ShellCheck && shellcheck --version ; fi
install:
- (mkdir /tmp/urchin && cd /tmp/urchin && curl -s "$(curl -s https://registry.npmjs.com/urchin | grep -Eo '"tarball":\s*"[^"]+"' | tail -n 1 | awk -F\" '{ print $4 }')" -O && tar -x -f urchin*)
- chmod +x /tmp/urchin/package/urchin
- '[ -z "$WITHOUT_CURL" ] || sudo apt-get remove curl -y'
script:
- if [ -n "${SHELLCHECK-}" ]; then shellcheck -s bash nvm.sh && shellcheck -s sh nvm.sh && shellcheck -s dash nvm.sh && shellcheck -s ksh nvm.sh && shellcheck -s bash install.sh ; fi
- if [ -n "${SHELLCHECK-}" ]; then shellcheck -s bash nvm.sh && shellcheck -s sh nvm.sh && shellcheck -s dash nvm.sh && shellcheck -s ksh nvm.sh ; fi
- if [ -n "${SHELLCHECK-}" ]; then shellcheck -s bash install.sh bash_completion nvm-exec ; fi
- if [ -z "${SHELLCHECK-}" ]; then make TEST_SUITE=$TEST_SUITE URCHIN=/tmp/urchin/package/urchin test-$SHELL ; fi
env:
global:
- CXX=g++-4.8
- CC=gcc-4.8
- PATH=$(echo $PATH | sed 's/::/:/')
- PATH="~/.cabal/bin/:$(echo $PATH | sed 's/::/:/')"
- NVM_DIR="${TRAVIS_BUILD_DIR}"
matrix:
- SHELLCHECK=true

View File

@@ -74,4 +74,4 @@ release: _ensure-tag _ensure-clean
printf "=== Bumping version **$$old_ver** to **$$new_ver** before committing and tagging:\n=== TYPE 'proceed' TO PROCEED, anything else to abort: " && read response && [ "$$response" = 'proceed' ] || { echo 'Aborted.' >&2; exit 2; }; \
replace "$$old_ver" "$$new_ver" -- $(VERSIONED_FILES) && \
git commit -m "v$$new_ver" $(VERSIONED_FILES) && \
git tag -a -m "v$$new_ver" "v$$new_ver"
git tag -a "v$$new_ver"

View File

@@ -1,49 +1,73 @@
# Node Version Manager [![Build Status](https://travis-ci.org/creationix/nvm.svg?branch=master)][3]
# Node Version Manager [![Build Status](https://travis-ci.org/creationix/nvm.svg?branch=master)][3] [![nvm version](https://img.shields.io/badge/version-v0.33.0-yellow.svg)][4]
## Table of Contents
- [Installation](#installation)
- [Install script](#install-script)
- [Verify installation](#verify-installation)
- [Manual install](#manual-install)
- [Manual upgrade](#manual-upgrade)
- [Usage](#usage)
- [Long-term support](#long-term-support)
- [Migrating global packages while installing](#migrating-global-packages-while-installing)
- [io.js](#iojs)
- [System version of node](#system-version-of-node)
- [Listing versions](#listing-versions)
- [.nvmrc](#nvmrc)
- [Deeper Shell Integration](#deeper-shell-integration)
- [License](#license)
- [Running tests](#running-tests)
- [Bash completion](#bash-completion)
- [Usage](#usage-1)
- [Compatibility Issues](#compatibility-issues)
- [Installing nvm on Alpine Linux](#installing-nvm-on-alpine-linux)
- [Problems](#problems)
## Installation
First you'll need to make sure your system has a c++ compiler. For OS X, Xcode will work, for Ubuntu, the build-essential and libssl-dev packages work.
First you'll need to make sure your system has a c++ compiler. For OS X, Xcode will work, for Ubuntu, the `build-essential` and `libssl-dev` packages work.
Note: `nvm` does not support Windows (see [#284](https://github.com/creationix/nvm/issues/284)). Two alternatives exist, which are neither supported nor developed by us:
**Note:** `nvm` does not support Windows (see [#284](https://github.com/creationix/nvm/issues/284)). Two alternatives exist, which are neither supported nor developed by us:
- [nvm-windows](https://github.com/coreybutler/nvm-windows)
- [nodist](https://github.com/marcelklehr/nodist)
Note: `nvm` does not support [Fish] either (see [#303](https://github.com/creationix/nvm/issues/303)). Alternatives exist, which are neither supported nor developed by us:
**Note:** `nvm` does not support [Fish] either (see [#303](https://github.com/creationix/nvm/issues/303)). Alternatives exist, which are neither supported nor developed by us:
- [bass](https://github.com/edc/bass) allows you to use utilities written for Bash in fish shell
- [fast-nvm-fish](https://github.com/brigand/fast-nvm-fish) only works with version numbers (not aliases) but doesn't significantly slow your shell startup
- [fin](https://github.com/fisherman/fin) is a pure fish node version manager for fish shell
- [plugin-nvm](https://github.com/derekstavis/plugin-nvm) plugin for [Oh My Fish](https://github.com/oh-my-fish/oh-my-fish), which makes nvm and its completions available in fish shell
Note: We still have some problems with FreeBSD, because there is no pre-built binary from official for FreeBSD, and building from source may need [patches](https://www.freshports.org/www/node/files/patch-deps_v8_src_base_platform_platform-posix.cc), see the issue ticket:
**Note:** We still have some problems with FreeBSD, because there is no official pre-built binary for FreeBSD, and building from source may need [patches](https://www.freshports.org/www/node/files/patch-deps_v8_src_base_platform_platform-posix.cc); see the issue ticket:
- [[#900] [Bug] nodejs on FreeBSD need to be patched ](https://github.com/creationix/nvm/issues/900)
- [nodejs/node#3716](https://github.com/nodejs/node/issues/3716)
Note: On OS X, if you do not have Xcode installed and you do not wish to download the ~4.3GB file, you can install the `Command Line Tools`. You can check out this blog post on how to just that:
**Note:** On OS X, if you do not have Xcode installed and you do not wish to download the ~4.3GB file, you can install the `Command Line Tools`. You can check out this blog post on how to just that:
- [How to Install Command Line Tools in OS X Mavericks & Yosemite (Without Xcode)](http://osxdaily.com/2014/02/12/install-command-line-tools-mac-os-x/)
Note: On OS X, if you have/had a "system" node installed and want to install modules globally, keep in mind that:
**Note:** On OS X, if you have/had a "system" node installed and want to install modules globally, keep in mind that:
- When using nvm you do not need `sudo` to globally install a module with `npm -g`, so instead of doing `sudo npm install -g grunt`, do instead `npm install -g grunt`
- If you have an `~/.npmrc` file, make sure it does not contain any `prefix` settings (which is not compatible with nvm)
- You can (but should not?) keep your previous "system" node install, but nvm will only be available to your user account (the one used to install nvm). This might cause version mismatches, as other users will be using `/usr/local/lib/node_modules/*` VS your user account using `~/.nvm/versions/node/vX.X.X/lib/node_modules/*`
Homebrew installation is not supported. If you have issues with homebrew-installed `nvm`, please `brew uninstall` it, and install it using the instructions below, before filing an issue.
Note: If you're using `zsh` you can easily install `nvm` as a zsh plugin. Install [`zsh-nvm`](https://github.com/lukechilds/zsh-nvm) and run `nvm upgrade` to upgrade.
**Note:** If you're using `zsh` you can easily install `nvm` as a zsh plugin. Install [`zsh-nvm`](https://github.com/lukechilds/zsh-nvm) and run `nvm upgrade` to upgrade.
**Note:** Git versions before v1.7 may face a problem of cloning nvm source from GitHub via https protocol, and there is also different behavior of git before v1.6, so the minimum required git version is v1.7.0 and we recommend v1.7.9.5 as it's the default version of the wildly used Ubuntu 12.04 LTS. If you are interested in the problem we mentioned here, please refer to GitHub's [HTTPS cloning errors](https://help.github.com/articles/https-cloning-errors/) article.
### Install script
To install or update nvm, you can use the [install script][2] using cURL:
```sh
curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.32.0/install.sh | bash
curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.33.0/install.sh | bash
```
or Wget:
```sh
wget -qO- https://raw.githubusercontent.com/creationix/nvm/v0.32.0/install.sh | bash
wget -qO- https://raw.githubusercontent.com/creationix/nvm/v0.33.0/install.sh | bash
```
<sub>The script clones the nvm repository to `~/.nvm` and adds the source line to your profile (`~/.bash_profile`, `~/.zshrc`, `~/.profile`, or `~/.bashrc`).</sub>
@@ -58,7 +82,7 @@ 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>
Note: On OS X, if you get `nvm: command not found` after running the install script, your system may not have a [.bash_profile file] where the command is set up. Simply create one with `touch ~/.bash_profile` and run the install script again.
**Note:** On OS X, if you get `nvm: command not found` after running the install script, your system may not have a [.bash_profile file] where the command is set up. Simply create one with `touch ~/.bash_profile` and run the install script again.
If the above doesn't fix the problem, open your `.bash_profile` and add the following line of code:
@@ -81,7 +105,7 @@ which should output 'nvm' if the installation was successful. Please note that `
For manual install create a folder somewhere in your filesystem with the `nvm.sh` file inside it. I put mine in `~/.nvm`.
Or if you have `git` installed (requires git v1.5.5+):
Or if you have `git` installed (requires git v1.7+):
1. clone this repo
1. check out the latest version
@@ -105,7 +129,7 @@ export NVM_DIR="$HOME/.nvm"
### Manual upgrade
For manual upgrade with `git` (requires git v1.5.5+):
For manual upgrade with `git` (requires git v1.7+):
1. change to the `$NVM_DIR`
1. pull down the latest changes
@@ -292,9 +316,16 @@ Put this into your `$HOME/.zshrc` to call `nvm use` automatically whenever you e
# place this after nvm initialization!
autoload -U add-zsh-hook
load-nvmrc() {
if [[ -f .nvmrc && -r .nvmrc ]]; then
nvm use
elif [[ $(nvm version) != $(nvm version default) ]]; then
local node_version="$(nvm version)"
local nvmrc_path="$(nvm_find_nvmrc)"
if [ -n "$nvmrc_path" ]; then
local nvmrc_node_version=$(nvm version "$(cat "${nvmrc_path}")")
if [ "$nvmrc_node_version" != "N/A" ] && [ "$nvmrc_node_version" != "$node_version" ]; then
nvm install
fi
elif [ "$node_version" != "$(nvm version default)" ]; then
echo "Reverting to nvm default version"
nvm use default
fi
@@ -343,7 +374,7 @@ Nota bene: Avoid running nvm while the tests are running.
To activate, you need to source `bash_completion`:
```sh
[[ -r $NVM_DIR/bash_completion ]] && . $NVM_DIR/bash_completion
[[ -r $NVM_DIR/bash_completion ]] && . $NVM_DIR/bash_completion
```
Put the above sourcing line just below the sourcing line for nvm in your profile (`.bashrc`, `.bash_profile`).
@@ -398,13 +429,13 @@ In order to provide the best performance (and other optimisations), nvm will dow
Alpine Linux, unlike mainstream/traditional Linux distributions, is based on [busybox](https://www.busybox.net/), a very compact (~5MB) Linux distribution. Busybox (and thus Alpine Linux) uses a different C/C++ stack to most mainstream/traditional Linux distributions - [musl](https://www.musl-libc.org/). This makes binary programs built for such mainstream/traditional incompatible with Alpine Linux, thus we cannot simply `nvm install X` on Alpine Linux and expect the downloaded binary to run correctly - you'll likely see "...does not exist" errors if you try that.
There is a `-s` flag for `nvm install` which requests nvm download Node source and compile it locally but currently (May 2016), this is not available for Node versions newer than v0.10 so unless you need an older Node version, this won't help you. Work is in progress on source-builds for newer Node versions but is not yet complete.
There is a `-s` flag for `nvm install` which requests nvm download Node source and compile it locally.
If installing nvm on Alpine Linux *is* still what you want or need to do, you should be able to achieve this by running the following from you Alpine Linux shell:
```sh
apk add bash
wget -qO- https://raw.githubusercontent.com/creationix/nvm/v0.32.0/install.sh | /bin/bash
apk add -U curl bash ca-certificates openssl ncurses coreutils python2 make gcc g++ libgcc linux-headers
curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.33.0/install.sh | bash
```
The Node project has some desire but no concrete plans (due to the overheads of building, testing and support) to offer Alpine-compatible binaries.
@@ -435,7 +466,8 @@ After the v0.8.6 release of node, nvm tries to install from binary packages. But
If setting the `default` alias does not establish the node version in new shells (i.e. `nvm current` yields `system`), ensure that the system's node PATH is set before the `nvm.sh` source line in your shell profile (see [#658](https://github.com/creationix/nvm/issues/658))
[1]: https://github.com/creationix/nvm.git
[2]: https://github.com/creationix/nvm/blob/v0.32.0/install.sh
[2]: https://github.com/creationix/nvm/blob/v0.33.0/install.sh
[3]: https://travis-ci.org/creationix/nvm
[4]: https://github.com/creationix/nvm/releases/tag/v0.33.0
[Urchin]: https://github.com/scraperwiki/urchin
[Fish]: http://fishshell.com

View File

@@ -17,11 +17,11 @@ __nvm_commands ()
current_word="${COMP_WORDS[COMP_CWORD]}"
COMMANDS='\
help install uninstall use run exec \
alias unalias reinstall-packages \
current list ls list-remote ls-remote \
clear-cache deactivate unload \
COMMANDS='
help install uninstall use run exec
alias unalias reinstall-packages
current list ls list-remote ls-remote
clear-cache deactivate unload
version which'
if [ ${#COMP_WORDS[@]} == 4 ]; then
@@ -56,8 +56,8 @@ __nvm_aliases ()
{
declare aliases
aliases=""
if [ -d $NVM_DIR/alias ]; then
aliases="$(cd $NVM_DIR/alias && find $PWD -type f | sed "s:$PWD/::")"
if [ -d "$NVM_DIR/alias" ]; then
aliases="$(cd "$NVM_DIR/alias" && command find "$PWD" -type f | command sed "s:$PWD/::")"
fi
echo "${aliases} node stable unstable iojs"
}

View File

@@ -11,7 +11,7 @@ nvm_install_dir() {
}
nvm_latest_version() {
echo "v0.32.0"
echo "v0.33.0"
}
#
@@ -109,6 +109,11 @@ install_nvm_from_git() {
command git --git-dir="$INSTALL_DIR"/.git --work-tree="$INSTALL_DIR" branch -D master >/dev/null 2>&1
fi
fi
echo "=> Compressing and cleaning up git repository"
if ! command git --git-dir="$INSTALL_DIR"/.git --work-tree="$INSTALL_DIR" gc --aggressive --prune=now ; then
echo >&2 "Your version of git is out of date. Please update it!"
fi
return
}
@@ -235,23 +240,24 @@ nvm_check_global_modules() {
)"
if [ "${MODULE_COUNT}" != '0' ]; then
cat <<-'END_MESSAGE'
=> You currently have modules installed globally with `npm`. These will no
=> longer be linked to the active version of Node when you install a new node
=> with `nvm`; and they may (depending on how you construct your `$PATH`)
=> override the binaries of modules installed with `nvm`:
# shellcheck disable=SC2016
echo '=> You currently have modules installed globally with `npm`. These will no'
# shellcheck disable=SC2016
echo '=> longer be linked to the active version of Node when you install a new node'
# shellcheck disable=SC2016
echo '=> with `nvm`; and they may (depending on how you construct your `$PATH`)'
# shellcheck disable=SC2016
echo '=> override the binaries of modules installed with `nvm`:'
echo
END_MESSAGE
command printf %s\\n "$NPM_GLOBAL_MODULES"
cat <<-'END_MESSAGE'
=> If you wish to uninstall them at a later point (or re-install them under your
=> `nvm` Nodes), you can remove them from the system Node as follows:
$ nvm use system
$ npm uninstall -g a_module
END_MESSAGE
echo '=> If you wish to uninstall them at a later point (or re-install them under your'
# shellcheck disable=SC2016
echo '=> `nvm` Nodes), you can remove them from the system Node as follows:'
echo
echo ' $ nvm use system'
echo ' $ npm uninstall -g a_module'
echo
fi
}
@@ -287,7 +293,9 @@ nvm_do_install() {
local INSTALL_DIR
INSTALL_DIR="$(nvm_install_dir)"
SOURCE_STR="\nexport NVM_DIR=\"$INSTALL_DIR\"\n[ -s \"\$NVM_DIR/nvm.sh\" ] && . \"\$NVM_DIR/nvm.sh\" # This loads nvm\n"
SOURCE_STR="\nexport NVM_DIR=\"$INSTALL_DIR\"\n[ -s \"\$NVM_DIR/nvm.sh\" ] && \\. \"\$NVM_DIR/nvm.sh\" # This loads nvm\n"
COMPLETION_STR="[ -s \"\$NVM_DIR/bash_completion\" ] && \\. \"\$NVM_DIR/bash_completion\" # This loads nvm bash_completion\n"
BASH_OR_ZSH=false
if [ -z "${NVM_PROFILE-}" ] ; then
echo "=> Profile not found. Tried ${NVM_PROFILE} (as defined in \$PROFILE), ~/.bashrc, ~/.bash_profile, ~/.zshrc, and ~/.profile."
@@ -297,17 +305,33 @@ nvm_do_install() {
echo "=> Append the following lines to the correct file yourself:"
command printf "${SOURCE_STR}"
else
case "${NVM_PROFILE-}" in
".bashrc" | ".bash_profile" | ".zshrc")
BASH_OR_ZSH=true
;;
esac
if ! command grep -qc '/nvm.sh' "$NVM_PROFILE"; then
echo "=> Appending source string to $NVM_PROFILE"
command printf "$SOURCE_STR" >> "$NVM_PROFILE"
echo "=> Appending nvm source string to $NVM_PROFILE"
command printf "${SOURCE_STR}" >> "$NVM_PROFILE"
else
echo "=> Source string already in ${NVM_PROFILE}"
echo "=> nvm source string already in ${NVM_PROFILE}"
fi
# shellcheck disable=SC2016
if ${BASH_OR_ZSH} && ! command grep -qc '$NVM_DIR/bash_completion' "$NVM_PROFILE"; then
echo "=> Appending bash_completion source string to $NVM_PROFILE"
command printf "$COMPLETION_STR" >> "$NVM_PROFILE"
else
echo "=> bash_completion source string already in ${NVM_PROFILE}"
fi
fi
if ${BASH_OR_ZSH} && [ -z "${NVM_PROFILE-}" ] ; then
echo "=> Please also append the following lines to the if you are using bash/zsh shell:"
command printf "${COMPLETION_STR}"
fi
# Source nvm
# shellcheck source=/dev/null
. "${INSTALL_DIR}/nvm.sh"
\. "${INSTALL_DIR}/nvm.sh"
nvm_check_global_modules
@@ -316,7 +340,10 @@ nvm_do_install() {
nvm_reset
echo "=> Close and reopen your terminal to start using nvm or run the following to use it now:"
command printf "$SOURCE_STR"
command printf "${SOURCE_STR}"
if ${BASH_OR_ZSH} ; then
command printf " && ${COMPLETION_STR}"
fi
}
#

View File

@@ -2,10 +2,11 @@
DIR="$(command cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
. "$DIR/nvm.sh" --no-use
# shellcheck disable=SC1090
\. "$DIR/nvm.sh" --no-use
if [ -n "$NODE_VERSION" ]; then
nvm use $NODE_VERSION > /dev/null || exit 127
nvm use "$NODE_VERSION" > /dev/null || exit 127
elif ! nvm use >/dev/null 2>&1; then
echo "No NODE_VERSION provided; no .nvmrc file found" >&2
exit 127

484
nvm.sh Normal file → Executable file
View File

@@ -22,6 +22,11 @@ nvm_echo() {
}
}
nvm_cd() {
# shellcheck disable=SC1001,SC2164
\cd "$@"
}
nvm_err() {
>&2 nvm_echo "$@"
}
@@ -115,7 +120,7 @@ if [ -z "${NVM_DIR-}" ]; then
NVM_SCRIPT_SOURCE="${BASH_SOURCE[0]}"
fi
# shellcheck disable=SC1001
NVM_DIR="$(cd ${NVM_CD_FLAGS} "$(dirname "${NVM_SCRIPT_SOURCE:-$0}")" > /dev/null && \pwd)"
NVM_DIR="$(nvm_cd ${NVM_CD_FLAGS} "$(dirname "${NVM_SCRIPT_SOURCE:-$0}")" > /dev/null && \pwd)"
export NVM_DIR
fi
unset NVM_SCRIPT_SOURCE 2> /dev/null
@@ -187,6 +192,10 @@ nvm_rc_version() {
fi
}
nvm_clang_version() {
clang --version | command awk '{ if ($2 == "version") print $3; else if ($3 == "version") print $4 }' | command sed 's/-.*$//g'
}
nvm_version_greater() {
command awk 'BEGIN {
if (ARGV[1] == "" || ARGV[2] == "") exit(1)
@@ -259,8 +268,7 @@ nvm_ensure_version_installed() {
EXIT_CODE="$?"
local NVM_VERSION_DIR
if [ "${EXIT_CODE}" != "0" ] || ! nvm_is_version_installed "${LOCAL_VERSION}"; then
VERSION="$(nvm_resolve_alias "${PROVIDED_VERSION}")"
if [ $? -eq 0 ]; then
if VERSION="$(nvm_resolve_alias "${PROVIDED_VERSION}")"; then
nvm_err "N/A: version \"${PROVIDED_VERSION} -> ${VERSION}\" is not yet installed."
nvm_err ""
nvm_err "You need to run \"nvm install ${PROVIDED_VERSION}\" to install it before using it."
@@ -313,10 +321,10 @@ nvm_remote_version() {
if nvm_validate_implicit_alias "${PATTERN}" 2> /dev/null ; then
case "${PATTERN}" in
"$(nvm_iojs_prefix)")
VERSION="$(NVM_LTS="${NVM_LTS-}" nvm_ls_remote_iojs | command tail -1)"
VERSION="$(NVM_LTS="${NVM_LTS-}" nvm_ls_remote_iojs | command tail -1)" &&:
;;
*)
VERSION="$(NVM_LTS="${NVM_LTS-}" nvm_ls_remote "${PATTERN}")"
VERSION="$(NVM_LTS="${NVM_LTS-}" nvm_ls_remote "${PATTERN}")" &&:
;;
esac
else
@@ -338,31 +346,68 @@ nvm_remote_version() {
nvm_remote_versions() {
local NVM_IOJS_PREFIX
NVM_IOJS_PREFIX="$(nvm_iojs_prefix)"
local NVM_NODE_PREFIX
NVM_NODE_PREFIX="$(nvm_node_prefix)"
local PATTERN
PATTERN="${1-}"
local NVM_FLAVOR
if [ -n "${NVM_LTS-}" ]; then
NVM_FLAVOR="${NVM_NODE_PREFIX}"
fi
case "${PATTERN}" in
"${NVM_IOJS_PREFIX}" | "io.js")
VERSIONS="$(NVM_LTS="${NVM_LTS-}" nvm_ls_remote_iojs)"
NVM_FLAVOR="${NVM_IOJS_PREFIX}"
unset PATTERN
;;
"$(nvm_node_prefix)")
VERSIONS="$(NVM_LTS="${NVM_LTS-}" nvm_ls_remote)"
"${NVM_NODE_PREFIX}")
NVM_FLAVOR="${NVM_NODE_PREFIX}"
unset PATTERN
;;
*)
if nvm_validate_implicit_alias "${PATTERN}" 2> /dev/null ; then
esac
if nvm_validate_implicit_alias "${PATTERN-}" 2> /dev/null ; then
nvm_err 'Implicit aliases are not supported in nvm_remote_versions.'
return 1
fi
VERSIONS="$(nvm_echo "$(NVM_LTS="${NVM_LTS-}" nvm_ls_remote "${PATTERN}")
$(NVM_LTS=${NVM_LTS-} nvm_ls_remote_iojs "${PATTERN}")" | nvm_grep -v "N/A" | command sed '/^$/d')"
;;
esac
local NVM_LS_REMOTE_EXIT_CODE
NVM_LS_REMOTE_EXIT_CODE=0
local NVM_LS_REMOTE_PRE_MERGED_OUTPUT
NVM_LS_REMOTE_PRE_MERGED_OUTPUT=''
local NVM_LS_REMOTE_POST_MERGED_OUTPUT
NVM_LS_REMOTE_POST_MERGED_OUTPUT=''
if [ -z "${NVM_FLAVOR-}" ] || [ "${NVM_FLAVOR-}" = "${NVM_NODE_PREFIX}" ]; then
local NVM_LS_REMOTE_OUTPUT
NVM_LS_REMOTE_OUTPUT=$(NVM_LTS="${NVM_LTS-}" nvm_ls_remote "${PATTERN-}") &&:
NVM_LS_REMOTE_EXIT_CODE=$?
# split output into two
NVM_LS_REMOTE_PRE_MERGED_OUTPUT="${NVM_LS_REMOTE_OUTPUT%%v4\.0\.0*}"
NVM_LS_REMOTE_POST_MERGED_OUTPUT="${NVM_LS_REMOTE_OUTPUT#$NVM_LS_REMOTE_PRE_MERGED_OUTPUT}"
fi
local NVM_LS_REMOTE_IOJS_EXIT_CODE
NVM_LS_REMOTE_IOJS_EXIT_CODE=0
local NVM_LS_REMOTE_IOJS_OUTPUT
if [ -z "${NVM_LTS-}" ] && ( \
[ -z "${NVM_FLAVOR-}" ] || [ "${NVM_FLAVOR-}" = "${NVM_IOJS_PREFIX}" ] \
); then
NVM_LS_REMOTE_IOJS_OUTPUT=$(nvm_ls_remote_iojs "${PATTERN-}") &&:
NVM_LS_REMOTE_IOJS_EXIT_CODE=$?
fi
VERSIONS="$(nvm_echo "${NVM_LS_REMOTE_PRE_MERGED_OUTPUT}
${NVM_LS_REMOTE_IOJS_OUTPUT}
${NVM_LS_REMOTE_POST_MERGED_OUTPUT}" | nvm_grep -v "N/A" | command sed '/^$/d')"
if [ -z "${VERSIONS}" ]; then
nvm_echo 'N/A'
return 3
else
nvm_echo "${VERSIONS}"
fi
nvm_echo "${VERSIONS}"
return $NVM_LS_REMOTE_EXIT_CODE || $NVM_LS_REMOTE_IOJS_EXIT_CODE
}
nvm_is_valid_version() {
@@ -408,7 +453,7 @@ nvm_format_version() {
if [ "${NUM_GROUPS}" -lt 3 ]; then
nvm_format_version "${VERSION%.}.0"
else
nvm_echo "${VERSION}" | cut -f1-3 -d.
nvm_echo "${VERSION}" | command cut -f1-3 -d.
fi
}
@@ -463,7 +508,7 @@ nvm_print_formatted_alias() {
local VERSION
VERSION="${3-}"
if [ -z "${VERSION}" ]; then
VERSION="$(nvm_version "${DEST}" || return 0)"
VERSION="$(nvm_version "${DEST}")" ||:
fi
local VERSION_FORMAT
local ALIAS_FORMAT
@@ -528,7 +573,7 @@ nvm_print_alias_path() {
local ALIAS
ALIAS="${ALIAS_PATH##${NVM_ALIAS_DIR}\/}"
local DEST
DEST="$(nvm_alias "${ALIAS}" 2> /dev/null || return 0)"
DEST="$(nvm_alias "${ALIAS}" 2> /dev/null)" ||:
if [ -n "${DEST}" ]; then
NVM_NO_COLORS="${NVM_NO_COLORS-}" NVM_LTS="${NVM_LTS-}" DEFAULT=false nvm_print_formatted_alias "${ALIAS}" "${DEST}"
fi
@@ -616,8 +661,7 @@ nvm_alias() {
nvm_ls_current() {
local NVM_LS_CURRENT_NODE_PATH
NVM_LS_CURRENT_NODE_PATH="$(command which node 2> /dev/null)"
if [ $? -ne 0 ]; then
if ! NVM_LS_CURRENT_NODE_PATH="$(command which node 2> /dev/null)"; then
nvm_echo 'none'
elif nvm_tree_contains_path "$(nvm_version_dir iojs)" "${NVM_LS_CURRENT_NODE_PATH}"; then
nvm_add_iojs_prefix "$(iojs --version 2>/dev/null)"
@@ -850,7 +894,7 @@ nvm_ls() {
PATTERN='v'
SEARCH_PATTERN='.*'
else
SEARCH_PATTERN="$(echo "${PATTERN}" | sed "s#\.#\\\.#g;")"
SEARCH_PATTERN="$(echo "${PATTERN}" | command sed "s#\.#\\\.#g;")"
fi
if [ -n "${NVM_DIRS_TO_SEARCH1}${NVM_DIRS_TO_SEARCH2}${NVM_DIRS_TO_SEARCH3}" ]; then
VERSIONS="$(command find "${NVM_DIRS_TO_SEARCH1}"/* "${NVM_DIRS_TO_SEARCH2}"/* "${NVM_DIRS_TO_SEARCH3}"/* -name . -o -type d -prune -o -path "${PATTERN}*" \
@@ -903,48 +947,60 @@ nvm_ls_remote() {
else
PATTERN=".*"
fi
NVM_LTS="${NVM_LTS-}" nvm_ls_remote_index_tab node std "${NVM_NODEJS_ORG_MIRROR}" "${PATTERN}"
NVM_LTS="${NVM_LTS-}" nvm_ls_remote_index_tab node std "${PATTERN}"
}
nvm_ls_remote_iojs() {
NVM_LTS="${NVM_LTS-}" nvm_ls_remote_index_tab iojs std "${NVM_IOJS_ORG_MIRROR}" "${1-}"
NVM_LTS="${NVM_LTS-}" nvm_ls_remote_index_tab iojs std "${1-}"
}
# args flavor, type, version
nvm_ls_remote_index_tab() {
local LTS
LTS="${NVM_LTS-}"
if [ "$#" -lt 4 ]; then
if [ "$#" -lt 3 ]; then
nvm_err 'not enough arguments'
return 5
fi
local FLAVOR
FLAVOR="${1-}"
local TYPE
TYPE="${1-}"
TYPE="${2-}"
local MIRROR
MIRROR="$(nvm_get_mirror "${FLAVOR}" "${TYPE}")"
if [ -z "${MIRROR}" ]; then
return 3
fi
local PREFIX
PREFIX=''
case "${TYPE}-${2-}" in
case "${FLAVOR}-${TYPE}" in
iojs-std) PREFIX="$(nvm_iojs_prefix)-" ;;
node-std) PREFIX='' ;;
iojs-*)
nvm_err 'unknown type of io.js release'
return 4
;;
node-*)
*)
nvm_err 'unknown type of node.js release'
return 4
;;
esac
local SORT_COMMAND
SORT_COMMAND='sort'
case "${TYPE}" in
node) SORT_COMMAND='sort -t. -u -k 1.2,1n -k 2,2n -k 3,3n' ;;
SORT_COMMAND='command sort'
case "${FLAVOR}" in
node) SORT_COMMAND='command sort -t. -u -k 1.2,1n -k 2,2n -k 3,3n' ;;
esac
local MIRROR
MIRROR="${3-}"
local PATTERN
PATTERN="${4-}"
PATTERN="${3-}"
local VERSIONS
if [ -n "${PATTERN}" ]; then
if [ "${TYPE}" = 'iojs' ]; then
if [ "${FLAVOR}" = 'iojs' ]; then
PATTERN="$(nvm_ensure_version_prefix "$(nvm_strip_iojs_prefix "${PATTERN}")")"
else
PATTERN="$(nvm_ensure_version_prefix "${PATTERN}")"
@@ -952,6 +1008,7 @@ nvm_ls_remote_index_tab() {
else
unset PATTERN
fi
ZSH_HAS_SHWORDSPLIT_UNSET=1
if nvm_has "setopt"; then
ZSH_HAS_SHWORDSPLIT_UNSET="$(set +e ; setopt | nvm_grep shwordsplit > /dev/null ; nvm_echo $?)"
@@ -968,18 +1025,19 @@ nvm_ls_remote_index_tab() {
local LTS_VERSION
command mkdir -p "$(nvm_alias_path)/lts"
nvm_echo "${VERSION_LIST}" \
| awk '{
| command awk '{
if ($10 ~ /^\-?$/) { next }
if ($10 && !a[tolower($10)]++) {
if (alias) { print alias, version }
alias = "lts/" tolower($10)
alias_name = "lts/" tolower($10)
if (!alias) { print "lts/*", alias_name }
alias = alias_name
version = $1
}
}
END {
if (alias) {
print alias, version
print "lts/*", alias
}
}' \
| while read -r LTS_ALIAS_LINE; do
@@ -1149,26 +1207,26 @@ nvm_checksum() {
elif nvm_has "sha1" && ! nvm_is_alias "sha1"; then
NVM_CHECKSUM="$(command sha1 -q "${1-}")"
elif nvm_has "shasum" && ! nvm_is_alias "shasum"; then
NVM_CHECKSUM="$(shasum "${1-}" | command awk '{print $1}')"
NVM_CHECKSUM="$(command shasum "${1-}" | command awk '{print $1}')"
else
nvm_err 'Unaliased sha1sum, sha1, or shasum not found.'
return 2
fi
else
if nvm_has "sha256sum" && ! nvm_is_alias "sha256sum"; then
NVM_CHECKSUM="$(sha256sum "${1-}" | command awk '{print $1}')"
NVM_CHECKSUM="$(command sha256sum "${1-}" | command awk '{print $1}')"
elif nvm_has "shasum" && ! nvm_is_alias "shasum"; then
NVM_CHECKSUM="$(shasum -a 256 "${1-}" | command awk '{print $1}')"
NVM_CHECKSUM="$(command shasum -a 256 "${1-}" | command awk '{print $1}')"
elif nvm_has "sha256" && ! nvm_is_alias "sha256"; then
NVM_CHECKSUM="$(sha256 -q "${1-}" | command awk '{print $1}')"
NVM_CHECKSUM="$(command sha256 -q "${1-}" | command awk '{print $1}')"
elif nvm_has "gsha256sum" && ! nvm_is_alias "gsha256sum"; then
NVM_CHECKSUM="$(gsha256sum "${1-}" | command awk '{print $1}')"
NVM_CHECKSUM="$(command gsha256sum "${1-}" | command awk '{print $1}')"
elif nvm_has "openssl" && ! nvm_is_alias "openssl"; then
NVM_CHECKSUM="$(openssl dgst -sha256 "${1-}" | rev | command awk '{print $1}' | rev)"
NVM_CHECKSUM="$(command openssl dgst -sha256 "${1-}" | rev | command awk '{print $1}' | rev)"
elif nvm_has "libressl" && ! nvm_is_alias "libressl"; then
NVM_CHECKSUM="$(libressl dgst -sha256 "${1-}" | rev | command awk '{print $1}' | rev)"
NVM_CHECKSUM="$(command libressl dgst -sha256 "${1-}" | rev | command awk '{print $1}' | rev)"
elif nvm_has "bssl" && ! nvm_is_alias "bssl"; then
NVM_CHECKSUM="$(bssl sha256sum "${1-}" | command awk '{print $1}')"
NVM_CHECKSUM="$(command bssl sha256sum "${1-}" | command awk '{print $1}')"
else
nvm_err 'Unaliased sha256sum, shasum, sha256, gsha256sum, openssl, libressl, or bssl not found.'
nvm_err 'WARNING: Continuing *without checksum verification*'
@@ -1206,20 +1264,20 @@ nvm_print_versions() {
| while read -r VERSION_LINE; do
VERSION="${VERSION_LINE%% *}"
LTS="${VERSION_LINE#* }"
FORMAT='%15s '
FORMAT='%15s'
if [ "_$VERSION" = "_$NVM_CURRENT" ]; then
if [ "${NVM_HAS_COLORS-}" = '1' ]; then
FORMAT='\033[0;32m-> %12s\033[0m '
FORMAT='\033[0;32m-> %12s\033[0m'
else
FORMAT='-> %12s *'
fi
elif [ "$VERSION" = "system" ]; then
if [ "${NVM_HAS_COLORS-}" = '1' ]; then
FORMAT='\033[0;33m%15s\033[0m '
FORMAT='\033[0;33m%15s\033[0m'
fi
elif nvm_is_version_installed "$VERSION"; then
if [ "${NVM_HAS_COLORS-}" = '1' ]; then
FORMAT='\033[0;34m%15s\033[0m '
FORMAT='\033[0;34m%15s\033[0m'
else
FORMAT='%15s *'
fi
@@ -1230,17 +1288,17 @@ nvm_print_versions() {
LTS="${LTS##Latest }"
LTS_LENGTH="${#LTS}"
if [ "${NVM_HAS_COLORS-}" = '1' ]; then
LTS_FORMAT="\033[1;32m%${LTS_LENGTH}s\033[0m"
LTS_FORMAT=" \033[1;32m%${LTS_LENGTH}s\033[0m"
else
LTS_FORMAT="%${LTS_LENGTH}s"
LTS_FORMAT=" %${LTS_LENGTH}s"
fi
;;
*)
LTS_LENGTH="${#LTS}"
if [ "${NVM_HAS_COLORS-}" = '1' ]; then
LTS_FORMAT="\033[0;37m%${LTS_LENGTH}s\033[0m"
LTS_FORMAT=" \033[0;37m%${LTS_LENGTH}s\033[0m"
else
LTS_FORMAT="%${LTS_LENGTH}s"
LTS_FORMAT=" %${LTS_LENGTH}s"
fi
;;
esac
@@ -1305,7 +1363,7 @@ nvm_print_implicit_alias() {
local NVM_IOJS_VERSION
local EXIT_CODE
NVM_IOJS_VERSION="$($NVM_COMMAND)"
NVM_IOJS_VERSION="$($NVM_COMMAND)" &&:
EXIT_CODE="$?"
if [ "_$EXIT_CODE" = "_0" ]; then
NVM_IOJS_VERSION="$(nvm_echo "$NVM_IOJS_VERSION" | command sed "s/^$NVM_IMPLICIT-//" | nvm_grep -e '^v' | command cut -c2- | command cut -d . -f 1,2 | uniq | command tail -1)"
@@ -1389,6 +1447,7 @@ nvm_get_os() {
Darwin\ *) NVM_OS=darwin ;;
SunOS\ *) NVM_OS=sunos ;;
FreeBSD\ *) NVM_OS=freebsd ;;
AIX\ *) NVM_OS=aix ;;
esac
nvm_echo "${NVM_OS-}"
}
@@ -1404,13 +1463,13 @@ nvm_get_arch() {
# isainfo to get the instruction set supported by the
# kernel.
if [ "_$NVM_OS" = "_sunos" ]; then
HOST_ARCH=$(pkg_info -Q MACHINE_ARCH pkg_install)
EXIT_CODE=$?
if [ $EXIT_CODE -ne 0 ]; then
HOST_ARCH=$(isainfo -n)
if HOST_ARCH=$(pkg_info -Q MACHINE_ARCH pkg_install); then
HOST_ARCH=$(echo "${HOST_ARCH}" | command tail -1)
else
HOST_ARCH=$(echo "$HOST_ARCH" | command tail -1)
HOST_ARCH=$(isainfo -n)
fi
elif [ "_$NVM_OS" = "_aix" ]; then
HOST_ARCH=ppc64
else
HOST_ARCH="$(command uname -m)"
fi
@@ -1487,7 +1546,7 @@ nvm_get_mirror() {
esac
}
# args: flavor, kind, version, reinstall
# args: flavor, type, version, reinstall
nvm_install_binary() {
local FLAVOR
case "${1-}" in
@@ -1498,19 +1557,19 @@ nvm_install_binary() {
;;
esac
local MIRROR
MIRROR="$(nvm_get_mirror node "${2-}")"
if [ -z "${MIRROR}" ]; then
return 3
fi
local TYPE
TYPE="${2-}"
local PREFIXED_VERSION
PREFIXED_VERSION="${3-}"
if [ -z "${PREFIXED_VERSION}" ]; then
nvm_err 'A version number is required.'
return 3
fi
local VERSION
VERSION="$(nvm_strip_iojs_prefix "${PREFIXED_VERSION}")"
local VERSION_PATH
if [ -z "$(nvm_get_os)" ]; then
return 2
fi
@@ -1525,14 +1584,24 @@ nvm_install_binary() {
local TMPDIR
local VERSION_PATH
TARBALL="$(nvm_download_artifact "${FLAVOR}" binary std "${VERSION}" | command tail -1)"
local NODE_OR_IOJS
if [ "${FLAVOR}" = 'node' ]; then
NODE_OR_IOJS="${FLAVOR}"
fi
nvm_echo "Downloading and installing ${NODE_OR_IOJS-} ${VERSION}..."
TARBALL="$(nvm_download_artifact "${FLAVOR}" binary "${TYPE-}" "${VERSION}" | command tail -1)"
if [ -f "${TARBALL}" ]; then
TMPDIR="$(dirname "${TARBALL}")/files"
fi
local tar
tar='tar'
if [ "${NVM_OS}" = 'aix' ]; then
tar='gtar'
fi
if (
[ -n "${TMPDIR-}" ] && \
command mkdir -p "${TMPDIR}" && \
command tar -x${tar_compression_flag}f "${TARBALL}" -C "${TMPDIR}" --strip-components 1 && \
command "${tar}" -x${tar_compression_flag}f "${TARBALL}" -C "${TMPDIR}" --strip-components 1 && \
VERSION_PATH="$(nvm_version_path "${PREFIXED_VERSION}")" && \
command mkdir -p "${VERSION_PATH}" && \
command mv "${TMPDIR}/"* "${VERSION_PATH}" && \
@@ -1569,7 +1638,7 @@ nvm_get_download_slug() {
esac
local VERSION
VERSION="${3}"
VERSION="${3-}"
local NVM_OS
NVM_OS="$(nvm_get_os)"
@@ -1621,6 +1690,11 @@ nvm_download_artifact() {
local VERSION
VERSION="${4}"
if [ -z "${VERSION}" ]; then
nvm_err 'A version number is required.'
return 3
fi
if [ "${KIND}" = 'binary' ] && ! nvm_binary_available "${VERSION}"; then
nvm_err "No precompiled binary available for ${VERSION}."
return
@@ -1659,10 +1733,19 @@ nvm_download_artifact() {
TARBALL_URL="${MIRROR}/${SLUG}.tar.${COMPRESSION}"
fi
if [ -r "${TARBALL}" ]; then
nvm_err "Local cache found: $(nvm_sanitize_path "${TARBALL}")"
if nvm_compare_checksum "${TARBALL}" "${CHECKSUM}" >/dev/null 2>&1; then
nvm_err "Checksums match! Using existing downloaded archive $(nvm_sanitize_path "${TARBALL}")"
else
nvm_echo "Downloading ${TARBALL_URL}..."
nvm_echo "${TARBALL}"
return 0
fi
nvm_compare_checksum "${TARBALL}" "${CHECKSUM}"
nvm_err "Checksum check failed!"
nvm_err "Removing the broken local cache..."
command rm -rf "${TARBALL}"
fi
nvm_err "Downloading ${TARBALL_URL}..."
nvm_download -L -C - --progress-bar "${TARBALL_URL}" -o "${TARBALL}" || (
command rm -rf "${TARBALL}" "${tmpdir}"
nvm_err "Binary download from ${TARBALL_URL} failed, trying source."
@@ -1679,7 +1762,6 @@ nvm_download_artifact() {
command rm -rf "${tmpdir}/files"
return 6
)
fi
nvm_echo "${TARBALL}"
}
@@ -1695,26 +1777,33 @@ nvm_get_make_jobs() {
fi
local NVM_OS
NVM_OS="$(nvm_get_os)"
local NVM_CPU_THREADS
if [ "_$NVM_OS" = "_linux" ]; then
NVM_CPU_THREADS="$(nvm_grep -c -E '^processor.+: [0-9]+' /proc/cpuinfo)"
elif [ "_$NVM_OS" = "_freebsd" ] || [ "_$NVM_OS" = "_darwin" ]; then
NVM_CPU_THREADS="$(sysctl -n hw.ncpu)"
elif [ "_$NVM_OS" = "_sunos" ]; then
NVM_CPU_THREADS="$(psrinfo | wc -l)"
fi
if ! nvm_is_natural_num "$NVM_CPU_THREADS" ; then
nvm_err 'Can not determine how many thread(s) we can use, set to only 1 now.'
nvm_err 'Please report an issue on GitHub to help us make it better and run it faster on your computer!'
local NVM_CPU_CORES
case "_$NVM_OS" in
"_linux")
NVM_CPU_CORES="$(nvm_grep -c -E '^processor.+: [0-9]+' /proc/cpuinfo)"
;;
"_freebsd" | "_darwin")
NVM_CPU_CORES="$(sysctl -n hw.ncpu)"
;;
"_sunos")
NVM_CPU_CORES="$(psrinfo | wc -l)"
;;
"_aix")
NVM_CPU_CORES="$(pmcycles -m | wc -l)"
;;
esac
if ! nvm_is_natural_num "$NVM_CPU_CORES" ; then
nvm_err 'Can not determine how many core(s) are available, running in single-threaded mode.'
nvm_err 'Please report an issue on GitHub to help us make nvm run faster on your computer!'
NVM_MAKE_JOBS=1
else
nvm_echo "Detected that you have $NVM_CPU_THREADS CPU thread(s)"
if [ "$NVM_CPU_THREADS" -gt 2 ]; then
NVM_MAKE_JOBS=$((NVM_CPU_THREADS - 1))
nvm_echo "Set the number of jobs to $NVM_CPU_THREADS - 1 = $NVM_MAKE_JOBS jobs to speed up the build"
nvm_echo "Detected that you have $NVM_CPU_CORES CPU core(s)"
if [ "$NVM_CPU_CORES" -gt 2 ]; then
NVM_MAKE_JOBS=$((NVM_CPU_CORES - 1))
nvm_echo "Running with $NVM_MAKE_JOBS threads to speed up the build"
else
NVM_MAKE_JOBS=1
nvm_echo 'Number of CPU thread(s) less or equal to 2 will have only one job a time for `make`'
nvm_echo 'Number of CPU core(s) less than or equal to 2, running in single-threaded mode'
fi
fi
}
@@ -1735,6 +1824,11 @@ nvm_install_source() {
local PREFIXED_VERSION
PREFIXED_VERSION="${3-}"
if [ -z "${PREFIXED_VERSION}" ]; then
nvm_err 'A version number is required.'
return 3
fi
local VERSION
VERSION="$(nvm_strip_iojs_prefix "${PREFIXED_VERSION}")"
@@ -1759,9 +1853,24 @@ nvm_install_source() {
local make
make='make'
if [ "${NVM_OS}" = 'freebsd' ]; then
local MAKE_CXX
case "${NVM_OS}" in
'freebsd')
make='gmake'
MAKE_CXX='CXX=c++'
MAKE_CXX="CC=${CC:-cc} CXX=${CXX:-c++}"
;;
'darwin')
MAKE_CXX="CC=${CC:-cc} CXX=${CXX:-c++}"
;;
'aix')
make='gmake'
;;
esac
if nvm_has "clang++" && nvm_has "clang" && nvm_version_greater_than_or_equal_to nvm_clang_version 3.5; then
if [ -z "${CC-}" ] || [ -z "${CXX-}" ] ; then
nvm_echo "Clang v3.5+ detected! CC or CXX not specified, will use Clang as c/c++ compiler!"
MAKE_CXX="CC=${CC:-cc} CXX=${CXX:-c++}"
fi
fi
local tar_compression_flag
@@ -1770,24 +1879,29 @@ nvm_install_source() {
tar_compression_flag='J'
fi
local tar
tar='tar'
if [ "${NVM_OS}" = 'aix' ]; then
tar='gtar'
fi
local TARBALL
local TMPDIR
local VERSION_PATH
# shellcheck disable=SC2086
if (
TARBALL="$(nvm_download_artifact "${FLAVOR}" source "${TYPE}" "${VERSION}" | command tail -1)" && \
[ -f "${TARBALL}" ] && \
TMPDIR="$(dirname "${TARBALL}")/files" && \
if (
# shellcheck disable=SC2086
command mkdir -p "${TMPDIR}" && \
command tar -x${tar_compression_flag}f "${TARBALL}" -C "${TMPDIR}" --strip-components 1 && \
command "${tar}" -x${tar_compression_flag}f "${TARBALL}" -C "${TMPDIR}" --strip-components 1 && \
VERSION_PATH="$(nvm_version_path "${PREFIXED_VERSION}")" && \
cd "${TMPDIR}" && \
nvm_cd "${TMPDIR}" && \
./configure --prefix="${VERSION_PATH}" $ADDITIONAL_PARAMETERS && \
$make -j "${NVM_MAKE_JOBS}" ${MAKE_CXX-} && \
command rm -f "${VERSION_PATH}" 2>/dev/null && \
$make -j "${NVM_MAKE_JOBS}" ${MAKE_CXX-} install && \
command rm -rf "${TMPDIR}"
$make -j "${NVM_MAKE_JOBS}" ${MAKE_CXX-} install
); then
if ! nvm_has "npm" ; then
nvm_echo 'Installing npm...'
@@ -1807,6 +1921,7 @@ nvm_install_source() {
fi
nvm_err "nvm: install ${VERSION} failed!"
command rm -rf "${TMPDIR-}"
return 1
}
@@ -1883,10 +1998,10 @@ nvm_die_on_prefix() {
fi
local NVM_NPM_PREFIX
NVM_NPM_PREFIX="$(NPM_CONFIG_LOGLEVEL=warn npm config get prefix)"
NVM_NPM_PREFIX="$(npm config --loglevel=warn get prefix)"
if ! (nvm_tree_contains_path "$NVM_DIR" "$NVM_NPM_PREFIX" >/dev/null 2>&1); then
if [ "_$NVM_DELETE_PREFIX" = "_1" ]; then
NPM_CONFIG_LOGLEVEL=warn npm config delete prefix
npm config --loglevel=warn delete prefix
else
nvm deactivate >/dev/null 2>&1
nvm_err "nvm is not compatible with the npm config \"prefix\" option: currently set to \"$NVM_NPM_PREFIX\""
@@ -1979,16 +2094,31 @@ nvm_is_natural_num() {
# Check version dir permissions
nvm_check_file_permissions() {
local ZSH_HAS_NONOMATCH_UNSET
ZSH_HAS_NONOMATCH_UNSET=1
if nvm_has "setopt"; then
ZSH_HAS_NONOMATCH_UNSET="$(set +e ; setopt | nvm_grep nonomatch > /dev/null ; nvm_echo $?)"
setopt nonomatch
fi
for FILE in $1/* $1/.[!.]* $1/..?* ; do
if [ -d "$FILE" ]; then
if ! nvm_check_file_permissions "$FILE"; then
if [ "${ZSH_HAS_NONOMATCH_UNSET}" -eq 1 ] && nvm_has "setopt"; then
setopt nomatch
fi
return 2
fi
elif [ -e "$FILE" ] && [ ! -w "$FILE" ]; then
nvm_err "file is not writable: $(nvm_sanitize_path "$FILE")"
elif [ -e "$FILE" ] && [ ! -w "$FILE" ] && [ ! -O "$FILE" ]; then
nvm_err "file is not writable or self-owned: $(nvm_sanitize_path "$FILE")"
if [ "${ZSH_HAS_NONOMATCH_UNSET}" -eq 1 ] && nvm_has "setopt"; then
setopt nomatch
fi
return 1
fi
done
if [ "${ZSH_HAS_NONOMATCH_UNSET}" -eq 1 ] && nvm_has "setopt"; then
setopt nomatch
fi
return 0
}
@@ -2209,7 +2339,7 @@ nvm() {
VERSION="$(NVM_VERSION_ONLY=true NVM_LTS="${LTS-}" nvm_remote_version "${provided_version}")"
if [ "_$VERSION" = "_N/A" ]; then
if [ "${VERSION}" = 'N/A' ]; then
local LTS_MSG
local REMOTE_CMD
if [ "${LTS-}" = '*' ]; then
@@ -2234,11 +2364,11 @@ nvm() {
case "$1" in
--reinstall-packages-from=*)
PROVIDED_REINSTALL_PACKAGES_FROM="$(nvm_echo "$1" | command cut -c 27-)"
REINSTALL_PACKAGES_FROM="$(nvm_version "$PROVIDED_REINSTALL_PACKAGES_FROM" || return 0)"
REINSTALL_PACKAGES_FROM="$(nvm_version "$PROVIDED_REINSTALL_PACKAGES_FROM")" ||:
;;
--copy-packages-from=*)
PROVIDED_REINSTALL_PACKAGES_FROM="$(nvm_echo "$1" | command cut -c 22-)"
REINSTALL_PACKAGES_FROM="$(nvm_version "$PROVIDED_REINSTALL_PACKAGES_FROM" || return 0)"
REINSTALL_PACKAGES_FROM="$(nvm_version "$PROVIDED_REINSTALL_PACKAGES_FROM")" ||:
;;
*)
ADDITIONAL_PARAMETERS="$ADDITIONAL_PARAMETERS $1"
@@ -2247,10 +2377,10 @@ nvm() {
shift
done
if [ "_$(nvm_ensure_version_prefix "$PROVIDED_REINSTALL_PACKAGES_FROM")" = "_$VERSION" ]; then
if [ -n "${PROVIDED_REINSTALL_PACKAGES_FROM-}" ] && [ "$(nvm_ensure_version_prefix "${PROVIDED_REINSTALL_PACKAGES_FROM}")" = "${VERSION}" ]; then
nvm_err "You can't reinstall global packages from the same version of node you're installing."
return 4
elif [ ! -z "$PROVIDED_REINSTALL_PACKAGES_FROM" ] && [ "_$REINSTALL_PACKAGES_FROM" = "_N/A" ]; then
elif [ "${REINSTALL_PACKAGES_FROM-}" = 'N/A' ]; then
nvm_err "If --reinstall-packages-from is provided, it must point to an installed version of node."
return 5
fi
@@ -2275,6 +2405,30 @@ nvm() {
return $?
fi
local NVM_INSTALL_SUCCESS
NVM_INSTALL_SUCCESS=false
if [ -n "${NVM_INSTALL_THIRD_PARTY_HOOK-}" ]; then
nvm_err '** $NVM_INSTALL_THIRD_PARTY_HOOK env var set; dispatching to third-party installation method **'
local NVM_METHOD_PREFERENCE
NVM_METHOD_PREFERENCE='binary'
if [ $nobinary -eq 1 ]; then
NVM_METHOD_PREFERENCE='source'
fi
local VERSION_PATH
VERSION_PATH="$(nvm_version_path "${VERSION}")"
local EXIT_CODE
"${NVM_INSTALL_THIRD_PARTY_HOOK}" "${VERSION}" "${FLAVOR}" std "${NVM_METHOD_PREFERENCE}" "${VERSION_PATH}" || {
EXIT_CODE=$?
nvm_err '*** Third-party $NVM_INSTALL_THIRD_PARTY_HOOK env var failed to install! ***'
return $EXIT_CODE
}
if ! nvm_is_version_installed "${VERSION}"; then
nvm_err '*** Third-party $NVM_INSTALL_THIRD_PARTY_HOOK env var claimed to succeed, but failed to install! ***'
return 33
fi
NVM_INSTALL_SUCCESS=true
else
if [ "_$NVM_OS" = "_freebsd" ]; then
# node.js and io.js do not have a FreeBSD binary
nobinary=1
@@ -2287,7 +2441,6 @@ nvm() {
fi
fi
local NVM_INSTALL_SUCCESS
# skip binary install if "nobinary" option specified.
if [ $nobinary -ne 1 ] && nvm_binary_available "$VERSION"; then
if nvm_install_binary "${FLAVOR}" std "${VERSION}"; then
@@ -2304,6 +2457,8 @@ nvm() {
fi
fi
fi
if [ "$NVM_INSTALL_SUCCESS" = true ] && nvm use "$VERSION"; then
nvm_ensure_default_set "$provided_version"
if [ ! -z "$REINSTALL_PACKAGES_FROM" ] \
@@ -2422,7 +2577,7 @@ nvm() {
nvm_echo "$NVM_DIR/*/lib/node_modules removed from \$NODE_PATH"
fi
fi
unset NVM_BIN NVM_PATH
unset NVM_BIN
;;
"use" )
local PROVIDED_VERSION
@@ -2490,13 +2645,15 @@ nvm() {
fi
return 8
fi
if [ "${VERSION}" = 'N/A' ]; then
nvm_err "N/A: version \"${PROVIDED_VERSION} -> ${VERSION}\" is not yet installed."
nvm_err ""
nvm_err "You need to run \"nvm install ${PROVIDED_VERSION}\" to install it before using it."
return 3
# This nvm_ensure_version_installed call can be a performance bottleneck
# on shell startup. Perhaps we can optimize it away or make it faster.
nvm_ensure_version_installed "${VERSION}"
EXIT_CODE=$?
if [ "$EXIT_CODE" != "0" ]; then
return $EXIT_CODE
elif ! nvm_ensure_version_installed "${VERSION}"; then
return $?
fi
local NVM_VERSION_DIR
@@ -2518,7 +2675,6 @@ nvm() {
fi
export PATH
hash -r
export NVM_PATH="$NVM_VERSION_DIR/lib/node"
export NVM_BIN="$NVM_VERSION_DIR/bin"
if [ "${NVM_SYMLINK_CURRENT-}" = true ]; then
command rm -f "$NVM_DIR/current" && ln -s "$NVM_VERSION_DIR" "$NVM_DIR/current"
@@ -2579,7 +2735,7 @@ nvm() {
nvm_rc_version && has_checked_nvmrc=1
fi
if [ -n "$NVM_RC_VERSION" ]; then
VERSION="$(nvm_version "$NVM_RC_VERSION" || return 0)"
VERSION="$(nvm_version "$NVM_RC_VERSION")" ||:
fi
if [ "${VERSION:-N/A}" = 'N/A' ]; then
>&2 nvm --help
@@ -2590,7 +2746,7 @@ nvm() {
if [ -z "${NVM_LTS-}" ]; then
provided_version="$1"
if [ -n "$provided_version" ]; then
VERSION="$(nvm_version "$provided_version" || return 0)"
VERSION="$(nvm_version "$provided_version")" ||:
if [ "_${VERSION:-N/A}" = '_N/A' ] && ! nvm_is_valid_version "$provided_version"; then
provided_version=''
if [ $has_checked_nvmrc -ne 1 ]; then
@@ -2600,7 +2756,7 @@ nvm() {
nvm_rc_version && has_checked_nvmrc=1
fi
fi
VERSION="$(nvm_version "$NVM_RC_VERSION" || return 0)"
VERSION="$(nvm_version "$NVM_RC_VERSION")" ||:
else
shift
fi
@@ -2668,7 +2824,7 @@ nvm() {
provided_version="lts/${NVM_LTS:-*}"
VERSION="$provided_version"
elif [ -n "$provided_version" ]; then
VERSION="$(nvm_version "$provided_version" || return 0)"
VERSION="$(nvm_version "$provided_version")" ||:
if [ "_$VERSION" = '_N/A' ] && ! nvm_is_valid_version "$provided_version"; then
if [ -n "${NVM_SILENT-}" ]; then
nvm_rc_version >/dev/null 2>&1
@@ -2676,7 +2832,7 @@ nvm() {
nvm_rc_version
fi
provided_version="$NVM_RC_VERSION"
VERSION="$(nvm_version "$provided_version" || return 0)"
VERSION="$(nvm_version "$provided_version")" ||:
else
shift
fi
@@ -2734,25 +2890,18 @@ nvm() {
return $NVM_LS_EXIT_CODE
;;
"ls-remote" | "list-remote" )
local LTS
local NVM_IOJS_PREFIX
NVM_IOJS_PREFIX="$(nvm_iojs_prefix)"
local NVM_NODE_PREFIX
NVM_NODE_PREFIX="$(nvm_node_prefix)"
local NVM_LTS
local PATTERN
local NVM_FLAVOR
local NVM_NO_COLORS
while [ $# -gt 0 ]
do
case "${1-}" in
--) ;;
--lts)
LTS='*'
NVM_FLAVOR="${NVM_NODE_PREFIX}"
NVM_LTS='*'
;;
--lts=*)
LTS="${1##--lts=}"
NVM_FLAVOR="${NVM_NODE_PREFIX}"
NVM_LTS="${1##--lts=}"
;;
--no-colors) NVM_NO_COLORS="${1}" ;;
--*)
@@ -2762,22 +2911,10 @@ nvm() {
*)
if [ -z "${PATTERN-}" ]; then
PATTERN="${1-}"
if [ -z "${NVM_FLAVOR-}" ]; then
if [ -z "${NVM_LTS-}" ]; then
case "${PATTERN}" in
"${NVM_IOJS_PREFIX}" | "${NVM_NODE_PREFIX}")
NVM_FLAVOR="${PATTERN}"
PATTERN=""
;;
'lts/*')
LTS='*'
PATTERN=''
NVM_FLAVOR="${NVM_NODE_PREFIX}"
;;
lts/*)
LTS="${PATTERN##lts/}"
PATTERN=''
NVM_FLAVOR="${NVM_NODE_PREFIX}"
;;
'lts/*') NVM_LTS='*' ;;
lts/*) NVM_LTS="${PATTERN##lts/}" ;;
esac
fi
fi
@@ -2786,37 +2923,13 @@ nvm() {
shift
done
local NVM_LS_REMOTE_EXIT_CODE
NVM_LS_REMOTE_EXIT_CODE=0
local NVM_LS_REMOTE_PRE_MERGED_OUTPUT
NVM_LS_REMOTE_PRE_MERGED_OUTPUT=''
local NVM_LS_REMOTE_POST_MERGED_OUTPUT
NVM_LS_REMOTE_POST_MERGED_OUTPUT=''
if [ "_$NVM_FLAVOR" != "_$NVM_IOJS_PREFIX" ]; then
local NVM_LS_REMOTE_OUTPUT
NVM_LS_REMOTE_OUTPUT=$(NVM_LTS="${LTS-}" nvm_ls_remote "$PATTERN")
# split output into two
NVM_LS_REMOTE_PRE_MERGED_OUTPUT="${NVM_LS_REMOTE_OUTPUT%%v4\.0\.0*}"
NVM_LS_REMOTE_POST_MERGED_OUTPUT="${NVM_LS_REMOTE_OUTPUT#$NVM_LS_REMOTE_PRE_MERGED_OUTPUT}"
NVM_LS_REMOTE_EXIT_CODE=$?
fi
local NVM_LS_REMOTE_IOJS_EXIT_CODE
NVM_LS_REMOTE_IOJS_EXIT_CODE=0
local NVM_LS_REMOTE_IOJS_OUTPUT
NVM_LS_REMOTE_IOJS_OUTPUT=''
if [ "_$NVM_FLAVOR" != "_$NVM_NODE_PREFIX" ] && [ -z "${LTS-}" ]; then
NVM_LS_REMOTE_IOJS_OUTPUT=$(nvm_ls_remote_iojs "$PATTERN")
NVM_LS_REMOTE_IOJS_EXIT_CODE=$?
fi
local NVM_OUTPUT
NVM_OUTPUT="$(nvm_echo "$NVM_LS_REMOTE_PRE_MERGED_OUTPUT
$NVM_LS_REMOTE_IOJS_OUTPUT
$NVM_LS_REMOTE_POST_MERGED_OUTPUT" | nvm_grep -v "N/A" | command sed '/^$/d')"
local EXIT_CODE
NVM_OUTPUT="$(NVM_LTS="${NVM_LTS-}" nvm_remote_versions "${PATTERN}" &&:)"
EXIT_CODE=$?
if [ -n "$NVM_OUTPUT" ]; then
NVM_NO_COLORS="${NVM_NO_COLORS-}" nvm_print_versions "$NVM_OUTPUT"
return $NVM_LS_REMOTE_EXIT_CODE || $NVM_LS_REMOTE_IOJS_EXIT_CODE
return $EXIT_CODE
else
NVM_NO_COLORS="${NVM_NO_COLORS-}" nvm_print_versions "N/A"
return 3
@@ -2832,10 +2945,10 @@ $NVM_LS_REMOTE_POST_MERGED_OUTPUT" | nvm_grep -v "N/A" | command sed '/^$/d')"
nvm_rc_version
if [ -n "${NVM_RC_VERSION}" ]; then
provided_version="${NVM_RC_VERSION}"
VERSION=$(nvm_version "${NVM_RC_VERSION}" || return 0)
VERSION=$(nvm_version "${NVM_RC_VERSION}") ||:
fi
elif [ "_${1}" != '_system' ]; then
VERSION="$(nvm_version "${provided_version}" || return 0)"
VERSION="$(nvm_version "${provided_version}")" ||:
else
VERSION="${1-}"
fi
@@ -2916,7 +3029,7 @@ $NVM_LS_REMOTE_POST_MERGED_OUTPUT" | nvm_grep -v "N/A" | command sed '/^$/d')"
nvm_err 'Aliases in subdirectories are not supported.'
return 1
fi
VERSION="$(nvm_version "${TARGET}" || return 0)"
VERSION="$(nvm_version "${TARGET}")" ||:
if [ "${VERSION}" = 'N/A' ]; then
nvm_err "! WARNING: Version '${TARGET}' does not exist."
fi
@@ -2957,7 +3070,7 @@ $NVM_LS_REMOTE_POST_MERGED_OUTPUT" | nvm_grep -v "N/A" | command sed '/^$/d')"
local PROVIDED_VERSION
PROVIDED_VERSION="${1-}"
if [ "$PROVIDED_VERSION" = "$(nvm_ls_current)" ] || [ "$(nvm_version "$PROVIDED_VERSION" || return 0)" = "$(nvm_ls_current)" ]; then
if [ "$PROVIDED_VERSION" = "$(nvm_ls_current)" ] || [ "$(nvm_version "$PROVIDED_VERSION" ||:)" = "$(nvm_ls_current)" ]; then
nvm_err 'Can not reinstall packages from the current version of node.'
return 2
fi
@@ -2970,7 +3083,7 @@ $NVM_LS_REMOTE_POST_MERGED_OUTPUT" | nvm_grep -v "N/A" | command sed '/^$/d')"
fi
VERSION="system"
else
VERSION="$(nvm_version "$PROVIDED_VERSION" || return 0)"
VERSION="$(nvm_version "$PROVIDED_VERSION")" ||:
fi
local NPMLIST
@@ -2989,7 +3102,7 @@ $NVM_LS_REMOTE_POST_MERGED_OUTPUT" | nvm_grep -v "N/A" | command sed '/^$/d')"
for LINK in $LINKS; do
set +f; unset IFS # restore variable expansion
if [ -n "$LINK" ]; then
(cd "$LINK" && npm link)
(nvm_cd "$LINK" && npm link)
fi
done
set +f; unset IFS # restore variable expansion in case $LINKS was empty
@@ -3037,7 +3150,7 @@ $NVM_LS_REMOTE_POST_MERGED_OUTPUT" | nvm_grep -v "N/A" | command sed '/^$/d')"
NVM_VERSION_ONLY=true NVM_LTS="${NVM_LTS-}" nvm_remote_version "${PATTERN:-node}"
;;
"--version" )
nvm_echo '0.32.0'
nvm_echo '0.33.0'
;;
"unload" )
unset -f nvm \
@@ -3046,7 +3159,7 @@ $NVM_LS_REMOTE_POST_MERGED_OUTPUT" | nvm_grep -v "N/A" | command sed '/^$/d')"
nvm_is_iojs_version nvm_is_alias \
nvm_ls_remote nvm_ls_remote_iojs nvm_ls_remote_index_tab \
nvm_ls nvm_remote_version nvm_remote_versions \
nvm_install_binary \
nvm_install_binary nvm_clang_version \
nvm_get_mirror nvm_get_download_slug nvm_download_artifact \
nvm_install_source nvm_check_file_permissions \
nvm_print_versions nvm_compute_checksum nvm_checksum \
@@ -3058,7 +3171,7 @@ $NVM_LS_REMOTE_POST_MERGED_OUTPUT" | nvm_grep -v "N/A" | command sed '/^$/d')"
nvm_binary_available nvm_prepend_path nvm_strip_path \
nvm_num_version_groups nvm_format_version nvm_ensure_version_prefix \
nvm_normalize_version nvm_is_valid_version \
nvm_ensure_version_installed \
nvm_ensure_version_installed nvm_cache_dir \
nvm_version_path nvm_alias_path nvm_version_dir \
nvm_find_nvmrc nvm_find_up nvm_tree_contains_path \
nvm_version_greater nvm_version_greater_than_or_equal_to \
@@ -3066,15 +3179,18 @@ $NVM_LS_REMOTE_POST_MERGED_OUTPUT" | nvm_grep -v "N/A" | command sed '/^$/d')"
nvm_has_system_node nvm_has_system_iojs \
nvm_download nvm_get_latest nvm_has \
nvm_supports_source_options nvm_auto nvm_supports_xz \
nvm_echo nvm_err nvm_grep \
nvm_echo nvm_err nvm_grep nvm_cd \
nvm_die_on_prefix nvm_get_make_jobs nvm_get_minor_version \
nvm_has_solaris_binary nvm_is_merged_node_version \
nvm_is_natural_num nvm_is_version_installed \
nvm_list_aliases nvm_make_alias nvm_print_alias_path \
nvm_print_default_alias nvm_print_formatted_alias nvm_resolve_local_alias \
nvm_sanitize_path nvm_has_colors nvm_process_parameters \
node_version_has_solaris_binary iojs_version_has_solaris_binary \
> /dev/null 2>&1
unset RC_VERSION NVM_NODEJS_ORG_MIRROR NVM_IOJS_ORG_MIRROR NVM_DIR \
NVM_CD_FLAGS NVM_BIN NVM_MAKE_JOBS \
> /dev/null 2>&1
unset RC_VERSION NVM_NODEJS_ORG_MIRROR NVM_IOJS_ORG_MIRROR NVM_DIR NVM_CD_FLAGS > /dev/null 2>&1
;;
* )
>&2 nvm --help

View File

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

View File

@@ -1,8 +1,8 @@
#!/bin/sh
. ../../../nvm.sh
\. ../../../nvm.sh
die () { echo $@ ; exit 1; }
die () { echo "$@" ; exit 1; }
OUTPUT="$(nvm alias foo/bar baz 2>&1)"
EXPECTED_OUTPUT="Aliases in subdirectories are not supported."

View File

@@ -1,8 +1,8 @@
#!/bin/sh
. ../../../nvm.sh
\. ../../../nvm.sh
die () { echo $@ ; exit 1; }
die () { echo "$@" ; exit 1; }
OUTPUT="$(nvm unalias foo/bar 2>&1)"
EXPECTED_OUTPUT="Aliases in subdirectories are not supported."

View File

@@ -1,9 +1,9 @@
#!/bin/sh
. ../../../nvm.sh
. ../../common.sh
\. ../../../nvm.sh
\. ../../common.sh
die () { echo $@ ; exit 1; }
die () { echo "$@" ; exit 1; }
if [ -n "$ZSH_VERSION" ]; then
# set clobber option in order to test that this does not produce any

View File

@@ -1,4 +1,4 @@
#!/bin/sh
. ../../../nvm.sh
\. ../../../nvm.sh
[ $(nvm alias test-stable-1 | wc -l) = '2' ]

View File

@@ -1,9 +1,9 @@
#!/bin/sh
. ../../../nvm.sh
. ../../common.sh
\. ../../../nvm.sh
\. ../../common.sh
die () { echo $@ ; exit 1; }
die () { echo "$@" ; exit 1; }
NVM_ALIAS_OUTPUT=$(nvm alias | strip_colors)

View File

@@ -1,9 +1,9 @@
#!/bin/sh
. ../../../nvm.sh
. ../../common.sh
\. ../../../nvm.sh
\. ../../common.sh
die () { echo $@ ; cleanup ; exit 1; }
die () { echo "$@" ; cleanup ; exit 1; }
cleanup () {
rm -rf "$(nvm_alias_path)/stable"
rm -rf "$(nvm_alias_path)/unstable"

View File

@@ -1,9 +1,9 @@
#!/bin/sh
. ../../../nvm.sh
. ../../common.sh
\. ../../../nvm.sh
\. ../../common.sh
die () { echo $@ ; exit 1; }
die () { echo "$@" ; exit 1; }
NVM_ALIAS_OUTPUT="$(nvm alias | strip_colors)"
echo "$NVM_ALIAS_OUTPUT" | \grep -F 'test-stable-1 -> 0.0.1 (-> v0.0.1)' \

View File

@@ -1,9 +1,9 @@
#!/bin/sh
. ../../../common.sh
\. ../../../common.sh
die () { echo $@ ; exit 1; }
die () { echo "$@" ; exit 1; }
. ../../../../nvm.sh
\. ../../../../nvm.sh
ALIAS="$(nvm_resolve_alias loopback | strip_colors)"
[ "_$ALIAS" = "_∞" ] || die "nvm_resolve_alias loopback was not ∞; got $ALIAS"

View File

@@ -1,9 +1,9 @@
#!/bin/sh
. ../../../common.sh
\. ../../../common.sh
die () { echo $@ ; exit 1; }
die () { echo "$@" ; exit 1; }
. ../../../../nvm.sh
\. ../../../../nvm.sh
ALIAS="$(nvm_resolve_local_alias loopback | strip_colors)"
[ "_$ALIAS" = "_∞" ] || die "nvm_resolve_local_alias loopback was not ∞; got $ALIAS"

View File

@@ -2,12 +2,12 @@
set -ex
. ../../../../nvm.sh
. ../../../common.sh
\. ../../../../nvm.sh
\. ../../../common.sh
LTS_ALIAS_PATH="$(nvm_alias_path)/lts"
die () { echo $@ ; exit 1; }
die () { echo "$@" ; exit 1; }
[ ! -d "${LTS_ALIAS_PATH}" ] || die "'${LTS_ALIAS_PATH}' exists and should not"

View File

@@ -1,6 +1,6 @@
#!/bin/sh
. ../../../../nvm.sh
\. ../../../../nvm.sh
LTS_ALIAS_PATH="$(nvm_alias_path)/lts"

View File

@@ -1,6 +1,6 @@
#!/bin/sh
. ../../../../nvm.sh
\. ../../../../nvm.sh
LTS_ALIAS_PATH="$(nvm_alias_path)/lts"

View File

@@ -1,10 +1,10 @@
#!/bin/sh
. ../../common.sh
\. ../../common.sh
die () { echo $@ ; exit 1; }
die () { echo "$@" ; exit 1; }
. ../../../nvm.sh
\. ../../../nvm.sh
nvm alias default 0.1 >/dev/null || die "'nvm alias default 0.1' failed"

View File

@@ -1,8 +1,8 @@
#!/bin/sh
die () { echo $@ ; exit 1; }
die () { echo "$@" ; exit 1; }
. ../../../nvm.sh
\. ../../../nvm.sh
EXIT_CODE=$(nvm_resolve_alias ; echo $?)
[ $EXIT_CODE = "1" ] || die "nvm_resolve_alias without an argument did not return 1; got $EXIT_CODE"

View File

@@ -1,8 +1,8 @@
#!/bin/sh
die () { echo $@ ; exit 1; }
die () { echo "$@" ; exit 1; }
. ../../../nvm.sh
\. ../../../nvm.sh
EXIT_CODE=$(nvm_resolve_local_alias ; echo $?)
[ "_$EXIT_CODE" = "_1" ] || die "nvm_resolve_local_alias without an argument did not return 1; got $EXIT_CODE"

View File

@@ -1,12 +1,12 @@
#!/bin/sh
. ../../../nvm.sh
\. ../../../nvm.sh
mkdir -p "${NVM_DIR}/v0.0.2"
mkdir -p "${NVM_DIR}/v0.0.20"
mkdir -p "${NVM_DIR}/versions/node/v0.12.0"
die () { echo $@ ; exit 1; }
die () { echo "$@" ; exit 1; }
# The result should contain only the appropriate version numbers.

View File

@@ -1,6 +1,6 @@
#!/bin/sh
. ../../../nvm.sh
\. ../../../nvm.sh
nvm which nonexistent_version
[ "_$?" = "_1" ]

View File

@@ -1,11 +1,11 @@
#!/bin/sh
. ../../../nvm.sh
\. ../../../nvm.sh
mkdir "${NVM_DIR}/v0.0.2"
mkdir "${NVM_DIR}/v0.0.20"
die () { echo $@ ; exit 1; }
die () { echo "$@" ; exit 1; }
# The result should contain only the appropriate version numbers.

View File

@@ -1,12 +1,12 @@
#!/bin/sh
. ../../../nvm.sh
\. ../../../nvm.sh
mkdir "${NVM_DIR}/v0.1.3"
mkdir "${NVM_DIR}/v0.2.3"
mkdir "${NVM_DIR}/v0.20.3"
die () { echo $@ ; exit 1; }
die () { echo "$@" ; exit 1; }
# The result should contain only the appropriate version numbers.

View File

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

View File

@@ -1,6 +1,6 @@
#!/bin/sh
. ../../../nvm.sh
\. ../../../nvm.sh
nvm ls io
[ "$?" = "3" ]

View File

@@ -1,6 +1,6 @@
#!/bin/sh
. ../../../nvm.sh
\. ../../../nvm.sh
nvm ls node_
[ "$?" = "3" ]

View File

@@ -1,8 +1,8 @@
#!/bin/sh
. ../../../nvm.sh
\. ../../../nvm.sh
die () { echo $@ ; exit 1; }
die () { echo "$@" ; exit 1; }
mkdir "${NVM_DIR}/v0.2.3"
mkdir "${NVM_DIR}/v0.3.3"

View File

@@ -1,8 +1,8 @@
#!/bin/sh
die () { echo $@ ; exit 1; }
die () { echo "$@" ; exit 1; }
. ../../../nvm.sh
\. ../../../nvm.sh
mkdir -p "${NVM_DIR}/v0.0.1"
mkdir -p "${NVM_DIR}/v0.0.3"

View File

@@ -1,6 +1,6 @@
#!/bin/sh
. ../../../nvm.sh
\. ../../../nvm.sh
mkdir "${NVM_DIR}/v0.0.1"
mkdir "${NVM_DIR}/v0.0.3"

View File

@@ -1,6 +1,6 @@
#!/bin/sh
. ../../../nvm.sh
\. ../../../nvm.sh
mkdir "${NVM_DIR}/v0.1.3"
mkdir "${NVM_DIR}/v0.2.3"

View File

@@ -1,6 +1,6 @@
#!/bin/sh
. ../../../nvm.sh
\. ../../../nvm.sh
mkdir "${NVM_DIR}/v0.1.3"
mkdir "${NVM_DIR}/v0.2.3"

View File

@@ -1,8 +1,8 @@
#!/bin/sh
die () { echo $@ ; exit 1; }
die () { echo "$@" ; exit 1; }
. ../../../nvm.sh
\. ../../../nvm.sh
mkdir -p "${NVM_DIR}/v0.0.1"
mkdir -p "${NVM_DIR}/v0.0.3"

View File

@@ -1,8 +1,8 @@
#!/bin/sh
die () { echo $@ ; exit 1; }
die () { echo "$@" ; exit 1; }
. ../../../nvm.sh
\. ../../../nvm.sh
mkdir -p "${NVM_DIR}/versions/node/v0.12.1"
mkdir "${NVM_DIR}/v0.1.3"

View File

@@ -1,6 +1,6 @@
#!/bin/sh
. ../../../nvm.sh
\. ../../../nvm.sh
mkdir "${NVM_DIR}/v0.1.2"

View File

@@ -2,7 +2,7 @@
set -ex
. ../../nvm.sh
\. ../../nvm.sh
nvm alias test v0.1.2

View File

@@ -2,9 +2,9 @@
set -ex
die () { echo $@ ; exit 1; }
die () { echo "$@" ; exit 1; }
. ../../nvm.sh
\. ../../nvm.sh
nvm deactivate 2>&1

View File

@@ -4,21 +4,19 @@ set -ex
mkdir -p ../../v0.2.3
die () { echo $@ ; exit 1; }
die () { echo "$@" ; exit 1; }
[ `expr $PATH : ".*v0.2.3/.*/bin"` = 0 ] || echo "WARNING: Unexpectedly found v0.2.3 already active" >&2
. ../../nvm.sh
\. ../../nvm.sh
nvm use --delete-prefix v0.2.3 || die "Failed to activate v0.2.3"
[ `expr "$PATH" : ".*v0.2.3/.*/bin"` != 0 ] || die "PATH not set up properly"
[ `expr "$NODE_PATH" : ".*v0.2.3/.*/lib/node_modules"` = 0 ] || die "NODE_PATH should not contain (npm root -g)"
[ `expr "$NVM_BIN" : ".*v0.2.3/bin"` != 0 ] || die "NODE_BIN should contain bin directory path"
[ `expr "$NVM_PATH" : ".*v0.2.3/lib/node"` != 0 ] || die "NODE_PATH should contain lib node directory path"
# ^ note: NODE_PATH should not contain `npm root -g` since globals should not be requireable
[ `expr "$NVM_BIN" : ".*v0.2.3/bin"` != 0 ] || die "NODE_BIN should contain bin directory path"
nvm deactivate || die "Failed to deactivate v0.2.3"
[ `expr "$PATH" : ".*v0.2.3/.*/bin"` = 0 ] || die "PATH not cleaned properly"
[ `expr "$NODE_PATH" : ".*v0.2.3/.*/lib/node_modules"` = 0 ] || die "NODE_PATH not cleaned properly"
[ "_$NVM_BIN" = "_" ] || die "NVM_BIN should be unset: got '$NVM_BIN'"
[ "_$NVM_PATH" = "_" ] || die "NVM_PATH should be unset: got '$NVM_PATH'"

View File

@@ -2,12 +2,12 @@
set -ex
die () { echo $@ ; cleanup ; exit 1; }
die () { echo "$@" ; cleanup ; exit 1; }
cleanup () {
rm -rf "${NVM_DIR}/v0.10.4"
}
. ../../nvm.sh
\. ../../nvm.sh
mkdir "${NVM_DIR}/v0.10.4"

View File

@@ -2,9 +2,9 @@
set -ex
die () { echo $@ ; exit 1; }
die () { echo "$@" ; exit 1; }
. ../../nvm.sh
\. ../../nvm.sh
set +ex # needed for stderr
OUTPUT="$(nvm install invalid.invalid 2>&1)"

View File

@@ -6,7 +6,7 @@ ALIAS_PATH="../../alias"
echo v0.1.2 > "${ALIAS_PATH}/test"
. ../../nvm.sh
\. ../../nvm.sh
nvm unalias test

View File

@@ -2,12 +2,25 @@
set -ex
die () { echo $@ ; exit 1; }
BEFORE="./before.tmp"
AFTER="./after.tmp"
. ../../nvm.sh
cleanup () { rm -f "${BEFORE}" "${AFTER}"; }
die () { echo "$@" ; cleanup ; exit 1; }
typeset -f | awk '/ \(\) $/ && !/^main / {print $1}' > "${BEFORE}"
\. ../../nvm.sh
type nvm > /dev/null 2>&1 || die "nvm not loaded"
nvm unload
typeset -f | awk '/ \(\) $/ && !/^main / {print $1}' > "${AFTER}"
! type nvm > /dev/null 2>&1 || die "nvm not unloaded"
DIFF="$(diff "${BEFORE}" "${AFTER}" ||:)"
[ -z "${DIFF}" ] || die "function pollution found: ${DIFF}"
cleanup

View File

@@ -2,13 +2,13 @@
set -ex
die () { echo $@ ; cleanup ; exit 1; }
die () { echo "$@" ; cleanup ; exit 1; }
cleanup() {
rm -rf "$(nvm_alias_path)/foo"
}
. ../../nvm.sh
\. ../../nvm.sh
nvm_make_alias foo foo

View File

@@ -2,9 +2,9 @@
set -ex
. ../common.sh
\. ../common.sh
die () { echo $@ ; cleanup ; exit 1; }
die () { echo "$@" ; cleanup ; exit 1; }
VERSION="v3.99.0"
@@ -13,7 +13,7 @@ cleanup() {
rm -rf "$(nvm_version_path "iojs-${VERSION}")"
}
. ../../nvm.sh
\. ../../nvm.sh
nvm deactivate || die "unable to deactivate; current: >$(nvm current)<"

View File

@@ -5,9 +5,9 @@ set -ex
cleanup() {
unset -f nvm_has_system_node nvm_print_npm_version
}
die() { echo $@ ; cleanup ; exit 1; }
die() { echo "$@" ; cleanup ; exit 1; }
. ../../nvm.sh
\. ../../nvm.sh
nvm_has_system_node() { return 0; }
nvm_print_npm_version() { command printf ' (npm v1.2.3)'; }

View File

@@ -3,7 +3,7 @@
set -ex
export NVM_SYMLINK_CURRENT=true
. ../../nvm.sh
\. ../../nvm.sh
rm -rf "${NVM_DIR}/v0.10.29"
mkdir "${NVM_DIR}/v0.10.29"

View File

@@ -2,7 +2,7 @@
set -ex
. ../../nvm.sh
\. ../../nvm.sh
TEST_NODE_VERSION="v0.10.29"

View File

@@ -2,6 +2,6 @@
set -ex
. ../../nvm.sh
\. ../../nvm.sh
nvm

View File

@@ -3,5 +3,5 @@
set -ex
set -- yes
. ../../nvm.sh
\. ../../nvm.sh
[ "$1" = yes ]

View File

@@ -1,9 +1,9 @@
#!/bin/sh
die () { echo $@ ; exit 1; }
die () { echo "$@" ; exit 1; }
. ../../../nvm.sh
. ../../common.sh
\. ../../../nvm.sh
\. ../../common.sh
assert_not_ok iojs_version_has_solaris_binary ""
assert_not_ok iojs_version_has_solaris_binary "foo"

View File

@@ -1,50 +1,64 @@
version date files npm v8 uv zlib openssl modules lts
v6.2.2 2016-06-16 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-msi,win-x86-msi 3.9.5 5.0.71.52 1.9.1 1.2.8 1.0.2h 48 -
v6.2.1 2016-06-02 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-msi,win-x86-msi 3.9.3 5.0.71.52 1.9.1 1.2.8 1.0.2h 48 -
v6.2.0 2016-05-17 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-msi,win-x86-msi 3.8.9 5.0.71.47 1.9.1 1.2.8 1.0.2h 48 -
v6.1.0 2016-05-05 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-msi,win-x86-msi 3.8.6 5.0.71.35 1.9.0 1.2.8 1.0.2h 48 -
v6.0.0 2016-04-26 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-msi,win-x86-msi 3.8.6 5.0.71.35 1.9.0 1.2.8 1.0.2g 48 -
v5.12.0 2016-06-23 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-msi,win-x86-msi 3.8.6 4.6.85.32 1.8.0 1.2.8 1.0.2h 47 -
v5.11.1 2016-05-05 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-msi,win-x86-msi 3.8.6 4.6.85.31 1.8.0 1.2.8 1.0.2h 47 -
v5.11.0 2016-04-21 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-msi,win-x86-msi 3.8.6 4.6.85.31 1.8.0 1.2.8 1.0.2g 47 -
v5.10.1 2016-04-05 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-msi,win-x86-msi 3.8.3 4.6.85.31 1.8.0 1.2.8 1.0.2g 47 -
v5.10.0 2016-04-01 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-msi,win-x86-msi 3.8.3 4.6.85.31 1.8.0 1.2.8 1.0.2g 47 -
v5.9.1 2016-03-22 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-msi,win-x86-msi 3.7.3 4.6.85.31 1.8.0 1.2.8 1.0.2g 47 -
v5.9.0 2016-03-16 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-msi,win-x86-msi 3.7.3 4.6.85.31 1.8.0 1.2.8 1.0.2g 47 -
v5.8.0 2016-03-09 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-msi,win-x86-msi 3.7.3 4.6.85.31 1.8.0 1.2.8 1.0.2g 47 -
v5.7.1 2016-03-02 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-msi,win-x86-msi 3.6.0 4.6.85.31 1.8.0 1.2.8 1.0.2g 47 -
v5.7.0 2016-02-23 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-msi,win-x86-msi 3.6.0 4.6.85.31 1.8.0 1.2.8 1.0.2f 47 -
v5.6.0 2016-02-09 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-msi,win-x86-msi 3.6.0 4.6.85.31 1.8.0 1.2.8 1.0.2f 47 -
v5.5.0 2016-01-21 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-msi,win-x86-msi 3.3.12 4.6.85.31 1.8.0 1.2.8 1.0.2e 47 -
v5.4.1 2016-01-12 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-msi,win-x86-msi 3.3.12 4.6.85.31 1.8.0 1.2.8 1.0.2e 47 -
v5.4.0 2016-01-06 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-msi,win-x86-msi 3.3.12 4.6.85.31 1.8.0 1.2.8 1.0.2e 47 -
v5.3.0 2015-12-15 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-msi,win-x86-msi 3.3.12 4.6.85.31 1.8.0 1.2.8 1.0.2e 47 -
v5.2.0 2015-12-09 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-msi,win-x86-msi 3.3.12 4.6.85.31 1.7.5 1.2.8 1.0.2e 47 -
v5.1.1 2015-12-03 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-msi,win-x86-msi 3.3.12 4.6.85.31 1.7.5 1.2.8 1.0.2e 47 -
v5.1.0 2015-11-17 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-msi,win-x86-msi 3.3.12 4.6.85.31 1.7.5 1.2.8 1.0.2d 47 -
v5.0.0 2015-10-29 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-msi,win-x86-msi 3.3.6 4.6.85.28 1.7.5 1.2.8 1.0.2d 47 -
v4.4.7 2016-06-28 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-msi,win-x86-msi 2.15.8 4.5.103.36 1.8.0 1.2.8 1.0.2h 46 Argon
v4.4.6 2016-06-23 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-msi,win-x86-msi 2.15.5 4.5.103.36 1.8.0 1.2.8 1.0.2h 46 Argon
v4.4.5 2016-05-24 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-msi,win-x86-msi 2.15.5 4.5.103.35 1.8.0 1.2.8 1.0.2h 46 Argon
v4.4.4 2016-05-05 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-msi,win-x86-msi 2.15.1 4.5.103.35 1.8.0 1.2.8 1.0.2h 46 Argon
v4.4.3 2016-04-12 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-msi,win-x86-msi 2.15.1 4.5.103.35 1.8.0 1.2.8 1.0.2g 46 Argon
v4.4.2 2016-04-01 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-msi,win-x86-msi 2.15.0 4.5.103.35 1.8.0 1.2.8 1.0.2g 46 Argon
v4.4.1 2016-03-22 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-msi,win-x86-msi 2.14.20 4.5.103.35 1.8.0 1.2.8 1.0.2g 46 Argon
v4.4.0 2016-03-08 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-msi,win-x86-msi 2.14.20 4.5.103.35 1.8.0 1.2.8 1.0.2g 46 Argon
v4.3.2 2016-03-02 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-msi,win-x86-msi 2.14.12 4.5.103.35 1.8.0 1.2.8 1.0.2g 46 Argon
v4.3.1 2016-02-16 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-msi,win-x86-msi 2.14.12 4.5.103.35 1.8.0 1.2.8 1.0.2f 46 Argon
v4.3.0 2016-02-09 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-msi,win-x86-msi 2.14.12 4.5.103.35 1.8.0 1.2.8 1.0.2f 46 Argon
v4.2.6 2016-01-21 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-msi,win-x86-msi 2.14.12 4.5.103.35 1.8.0 1.2.8 1.0.2e 46 Argon
v4.2.5 2016-01-20 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-msi,win-x86-msi 2.14.12 4.5.103.35 1.8.0 1.2.8 1.0.2e 46 Argon
v4.2.4 2015-12-23 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-msi,win-x86-msi 2.14.12 4.5.103.35 1.7.5 1.2.8 1.0.2e 46 Argon
v4.2.3 2015-12-03 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-msi,win-x86-msi 2.14.7 4.5.103.35 1.7.5 1.2.8 1.0.2e 46 Argon
v4.2.2 2015-11-03 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-msi,win-x86-msi 2.14.7 4.5.103.35 1.7.5 1.2.8 1.0.2d 46 Argon
v4.2.1 2015-10-13 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-msi,win-x86-msi 2.14.7 4.5.103.35 1.7.5 1.2.8 1.0.2d 46 Argon
v4.2.0 2015-10-12 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-msi,win-x86-msi 2.14.7 4.5.103.35 1.7.5 1.2.8 1.0.2d 46 Argon
v4.1.2 2015-10-05 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-msi,win-x86-msi 2.14.4 4.5.103.35 1.7.5 1.2.8 1.0.2d 46 -
v4.1.1 2015-09-23 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-msi,win-x86-msi 2.14.4 4.5.103.33 1.7.4 1.2.8 1.0.2d 46 -
v4.1.0 2015-09-17 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-msi,win-x86-msi 2.14.3 4.5.103.33 1.7.4 1.2.8 1.0.2d 46 -
v4.0.0 2015-09-08 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-msi,win-x86-msi 2.14.2 4.5.103.30 1.7.3 1.2.8 1.0.2d 46 -
v6.9.0 2016-10-18 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 3.10.8 5.1.281.84 1.9.1 1.2.8 1.0.2j 48 Boron
v6.8.1 2016-10-14 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 3.10.8 5.1.281.84 1.9.1 1.2.8 1.0.2j 48 -
v6.8.0 2016-10-12 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 3.10.8 5.1.281.84 1.9.1 1.2.8 1.0.2j 48 -
v6.7.0 2016-09-27 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 3.10.3 5.1.281.83 1.9.1 1.2.8 1.0.2j 48 -
v6.6.0 2016-09-14 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 3.10.3 5.1.281.83 1.9.1 1.2.8 1.0.2h 48 -
v6.5.0 2016-08-26 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 3.10.3 5.1.281.81 1.9.1 1.2.8 1.0.2h 48 -
v6.4.0 2016-08-12 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 3.10.3 5.0.71.60 1.9.1 1.2.8 1.0.2h 48 -
v6.3.1 2016-07-21 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 3.10.3 5.0.71.57 1.9.1 1.2.8 1.0.2h 48 -
v6.3.0 2016-07-06 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 3.10.3 5.0.71.52 1.9.1 1.2.8 1.0.2h 48 -
v6.2.2 2016-06-16 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 3.9.5 5.0.71.52 1.9.1 1.2.8 1.0.2h 48 -
v6.2.1 2016-06-02 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 3.9.3 5.0.71.52 1.9.1 1.2.8 1.0.2h 48 -
v6.2.0 2016-05-17 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 3.8.9 5.0.71.47 1.9.1 1.2.8 1.0.2h 48 -
v6.1.0 2016-05-05 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 3.8.6 5.0.71.35 1.9.0 1.2.8 1.0.2h 48 -
v6.0.0 2016-04-26 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 3.8.6 5.0.71.35 1.9.0 1.2.8 1.0.2g 48 -
v5.12.0 2016-06-23 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 3.8.6 4.6.85.32 1.8.0 1.2.8 1.0.2h 47 -
v5.11.1 2016-05-05 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 3.8.6 4.6.85.31 1.8.0 1.2.8 1.0.2h 47 -
v5.11.0 2016-04-21 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 3.8.6 4.6.85.31 1.8.0 1.2.8 1.0.2g 47 -
v5.10.1 2016-04-05 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 3.8.3 4.6.85.31 1.8.0 1.2.8 1.0.2g 47 -
v5.10.0 2016-04-01 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 3.8.3 4.6.85.31 1.8.0 1.2.8 1.0.2g 47 -
v5.9.1 2016-03-22 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 3.7.3 4.6.85.31 1.8.0 1.2.8 1.0.2g 47 -
v5.9.0 2016-03-16 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 3.7.3 4.6.85.31 1.8.0 1.2.8 1.0.2g 47 -
v5.8.0 2016-03-09 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 3.7.3 4.6.85.31 1.8.0 1.2.8 1.0.2g 47 -
v5.7.1 2016-03-02 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 3.6.0 4.6.85.31 1.8.0 1.2.8 1.0.2g 47 -
v5.7.0 2016-02-23 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 3.6.0 4.6.85.31 1.8.0 1.2.8 1.0.2f 47 -
v5.6.0 2016-02-09 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 3.6.0 4.6.85.31 1.8.0 1.2.8 1.0.2f 47 -
v5.5.0 2016-01-21 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 3.3.12 4.6.85.31 1.8.0 1.2.8 1.0.2e 47 -
v5.4.1 2016-01-12 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 3.3.12 4.6.85.31 1.8.0 1.2.8 1.0.2e 47 -
v5.4.0 2016-01-06 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 3.3.12 4.6.85.31 1.8.0 1.2.8 1.0.2e 47 -
v5.3.0 2015-12-15 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 3.3.12 4.6.85.31 1.8.0 1.2.8 1.0.2e 47 -
v5.2.0 2015-12-09 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 3.3.12 4.6.85.31 1.7.5 1.2.8 1.0.2e 47 -
v5.1.1 2015-12-03 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 3.3.12 4.6.85.31 1.7.5 1.2.8 1.0.2e 47 -
v5.1.0 2015-11-17 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 3.3.12 4.6.85.31 1.7.5 1.2.8 1.0.2d 47 -
v5.0.0 2015-10-29 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 3.3.6 4.6.85.28 1.7.5 1.2.8 1.0.2d 47 -
v4.6.1 2016-10-18 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 2.15.9 4.5.103.37 1.9.1 1.2.8 1.0.2j 46 Argon
v4.6.0 2016-09-27 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 2.15.9 4.5.103.37 1.9.1 1.2.8 1.0.2j 46 Argon
v4.5.0 2016-08-16 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 2.15.9 4.5.103.37 1.9.1 1.2.8 1.0.2h 46 Argon
v4.4.7 2016-06-28 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 2.15.8 4.5.103.36 1.8.0 1.2.8 1.0.2h 46 Argon
v4.4.6 2016-06-23 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 2.15.5 4.5.103.36 1.8.0 1.2.8 1.0.2h 46 Argon
v4.4.5 2016-05-24 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 2.15.5 4.5.103.35 1.8.0 1.2.8 1.0.2h 46 Argon
v4.4.4 2016-05-05 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 2.15.1 4.5.103.35 1.8.0 1.2.8 1.0.2h 46 Argon
v4.4.3 2016-04-12 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 2.15.1 4.5.103.35 1.8.0 1.2.8 1.0.2g 46 Argon
v4.4.2 2016-04-01 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 2.15.0 4.5.103.35 1.8.0 1.2.8 1.0.2g 46 Argon
v4.4.1 2016-03-22 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 2.14.20 4.5.103.35 1.8.0 1.2.8 1.0.2g 46 Argon
v4.4.0 2016-03-08 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 2.14.20 4.5.103.35 1.8.0 1.2.8 1.0.2g 46 Argon
v4.3.2 2016-03-02 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 2.14.12 4.5.103.35 1.8.0 1.2.8 1.0.2g 46 Argon
v4.3.1 2016-02-16 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 2.14.12 4.5.103.35 1.8.0 1.2.8 1.0.2f 46 Argon
v4.3.0 2016-02-09 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 2.14.12 4.5.103.35 1.8.0 1.2.8 1.0.2f 46 Argon
v4.2.6 2016-01-21 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 2.14.12 4.5.103.35 1.8.0 1.2.8 1.0.2e 46 Argon
v4.2.5 2016-01-20 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 2.14.12 4.5.103.35 1.8.0 1.2.8 1.0.2e 46 Argon
v4.2.4 2015-12-23 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 2.14.12 4.5.103.35 1.7.5 1.2.8 1.0.2e 46 Argon
v4.2.3 2015-12-03 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 2.14.7 4.5.103.35 1.7.5 1.2.8 1.0.2e 46 Argon
v4.2.2 2015-11-03 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 2.14.7 4.5.103.35 1.7.5 1.2.8 1.0.2d 46 Argon
v4.2.1 2015-10-13 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 2.14.7 4.5.103.35 1.7.5 1.2.8 1.0.2d 46 Argon
v4.2.0 2015-10-12 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 2.14.7 4.5.103.35 1.7.5 1.2.8 1.0.2d 46 Argon
v4.1.2 2015-10-05 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 2.14.4 4.5.103.35 1.7.5 1.2.8 1.0.2d 46 -
v4.1.1 2015-09-23 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 2.14.4 4.5.103.33 1.7.4 1.2.8 1.0.2d 46 -
v4.1.0 2015-09-17 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 2.14.3 4.5.103.33 1.7.4 1.2.8 1.0.2d 46 -
v4.0.0 2015-09-08 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 2.14.2 4.5.103.30 1.7.3 1.2.8 1.0.2d 46 -
v0.12.17 2016-10-18 headers,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,osx-x86-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x86-exe,win-x86-msi 2.15.1 3.28.71.19 1.6.1 1.2.8 1.0.1u 14 -
v0.12.16 2016-09-27 headers,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,osx-x86-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x86-exe,win-x86-msi 2.15.1 3.28.71.19 1.6.1 1.2.8 1.0.1u 14 -
v0.12.15 2016-06-23 headers,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,osx-x86-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x86-exe,win-x86-msi 2.15.1 3.28.71.19 1.6.1 1.2.8 1.0.1t 14 -
v0.12.14 2016-05-06 headers,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,osx-x86-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x86-exe,win-x86-msi 2.15.1 3.28.71.19 1.6.1 1.2.8 1.0.1t 14 -
v0.12.13 2016-03-31 headers,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,osx-x86-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x86-exe,win-x86-msi 2.15.0 3.28.71.19 1.6.1 1.2.8 1.0.1s 14 -
@@ -78,6 +92,8 @@ v0.11.3 2013-06-26 linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,osx-x86-tar,src,s
v0.11.2 2013-05-13 linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,osx-x86-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x86-exe,win-x86-msi 1.2.21 3.19.0.0 0.11.2 1.2.3 1.0.1e 0x000C -
v0.11.1 2013-04-19 linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,osx-x86-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x86-exe,win-x86-msi 1.2.18 3.18.0.0 0.11.1 1.2.3 1.0.1e 0x000C -
v0.11.0 2013-03-28 linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,osx-x86-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x86-exe,win-x86-msi 1.2.15 3.17.13.0 0.10.3 1.2.3 1.0.1e 0x000C -
v0.10.48 2016-10-18 headers,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,osx-x86-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x86-exe,win-x86-msi 2.15.1 3.14.5.11 0.10.37 1.2.8 1.0.1u 11 -
v0.10.47 2016-09-27 headers,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,osx-x86-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x86-exe,win-x86-msi 2.15.1 3.14.5.11 0.10.37 1.2.8 1.0.1u 11 -
v0.10.46 2016-06-23 headers,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,osx-x86-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x86-exe,win-x86-msi 2.15.1 3.14.5.9 0.10.37 1.2.8 1.0.1t 11 -
v0.10.45 2016-05-06 headers,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,osx-x86-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x86-exe,win-x86-msi 2.15.1 3.14.5.9 0.10.36 1.2.8 1.0.1t 11 -
v0.10.44 2016-03-31 headers,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,osx-x86-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x86-exe,win-x86-msi 2.15.0 3.14.5.9 0.10.36 1.2.8 1.0.1s 11 -

View File

@@ -15,4 +15,8 @@
v4.4.4  (LTS: Argon)
v4.4.5  (LTS: Argon)
v4.4.6  (LTS: Argon)
v4.4.7  (Latest LTS: Argon)
v4.4.7  (LTS: Argon)
v4.5.0  (LTS: Argon)
v4.6.0  (LTS: Argon)
v4.6.1  (Latest LTS: Argon)
v6.9.0  (Latest LTS: Boron)

View File

@@ -197,6 +197,8 @@
v0.10.44
v0.10.45
v0.10.46
v0.10.47
v0.10.48
v0.11.0
v0.11.1
v0.11.2
@@ -230,6 +232,8 @@
v0.12.13
v0.12.14
v0.12.15
v0.12.16
v0.12.17
v4.0.0
v4.1.0
v4.1.1
@@ -251,7 +255,10 @@
v4.4.4  (LTS: Argon)
v4.4.5  (LTS: Argon)
v4.4.6  (LTS: Argon)
v4.4.7  (Latest LTS: Argon)
v4.4.7  (LTS: Argon)
v4.5.0  (LTS: Argon)
v4.6.0  (LTS: Argon)
v4.6.1  (Latest LTS: Argon)
v5.0.0
v5.1.0
v5.1.1
@@ -276,3 +283,12 @@
v6.2.0
v6.2.1
v6.2.2
v6.3.0
v6.3.1
v6.4.0
v6.5.0
v6.6.0
v6.7.0
v6.8.0
v6.8.1
v6.9.0  (Latest LTS: Boron)

View File

@@ -197,6 +197,8 @@
v0.10.44
v0.10.45
v0.10.46
v0.10.47
v0.10.48
v0.11.0
v0.11.1
v0.11.2
@@ -230,6 +232,8 @@
v0.12.13
v0.12.14
v0.12.15
v0.12.16
v0.12.17
iojs-v1.0.0
iojs-v1.0.1
iojs-v1.0.2
@@ -292,7 +296,10 @@
v4.4.4  (LTS: Argon)
v4.4.5  (LTS: Argon)
v4.4.6  (LTS: Argon)
v4.4.7  (Latest LTS: Argon)
v4.4.7  (LTS: Argon)
v4.5.0  (LTS: Argon)
v4.6.0  (LTS: Argon)
v4.6.1  (Latest LTS: Argon)
v5.0.0
v5.1.0
v5.1.1
@@ -317,3 +324,12 @@
v6.2.0
v6.2.1
v6.2.2
v6.3.0
v6.3.1
v6.4.0
v6.5.0
v6.6.0
v6.7.0
v6.8.0
v6.8.1
v6.9.0  (Latest LTS: Boron)

View File

@@ -16,3 +16,6 @@ v4.4.4 Argon
v4.4.5 Argon
v4.4.6 Argon
v4.4.7 Argon
v4.5.0 Argon
v4.6.0 Argon
v4.6.1 Argon

View File

@@ -16,3 +16,7 @@ v4.4.4 Argon
v4.4.5 Argon
v4.4.6 Argon
v4.4.7 Argon
v4.5.0 Argon
v4.6.0 Argon
v4.6.1 Argon
v6.9.0 Boron

View File

@@ -0,0 +1 @@
v6.9.0 Boron

View File

@@ -197,6 +197,8 @@ v0.10.43
v0.10.44
v0.10.45
v0.10.46
v0.10.47
v0.10.48
v0.11.0
v0.11.1
v0.11.2
@@ -230,6 +232,8 @@ v0.12.12
v0.12.13
v0.12.14
v0.12.15
v0.12.16
v0.12.17
v4.0.0
v4.1.0
v4.1.1
@@ -252,6 +256,9 @@ v4.4.4 Argon
v4.4.5 Argon
v4.4.6 Argon
v4.4.7 Argon
v4.5.0 Argon
v4.6.0 Argon
v4.6.1 Argon
v5.0.0
v5.1.0
v5.1.1
@@ -276,3 +283,12 @@ v6.1.0
v6.2.0
v6.2.1
v6.2.2
v6.3.0
v6.3.1
v6.4.0
v6.5.0
v6.6.0
v6.7.0
v6.8.0
v6.8.1
v6.9.0 Boron

View File

@@ -1,2 +1,3 @@
lts/argon|v4.4.7
lts/*|lts/argon
lts/*|lts/boron
lts/boron|v6.9.0
lts/argon|v4.6.1

View File

@@ -1,9 +1,9 @@
#!/bin/sh
die () { echo $@ ; exit 1; }
die () { echo "$@" ; exit 1; }
. ../../../nvm.sh
. ../../common.sh
\. ../../../nvm.sh
\. ../../common.sh
# Invalid version numbers fail
assert_not_ok node_version_has_solaris_binary ""

View File

@@ -2,17 +2,17 @@
set -ex
die () { echo $@ ; cleanup ; exit 1; }
die () { echo "$@" ; cleanup ; exit 1; }
cleanup() {
unset -f nvm_download nvm_ls_remote nvm_ls_remote_iojs
}
. ../../../nvm.sh
\. ../../../nvm.sh
nvm deactivate 2>/dev/null || die 'unable to deactivate'
. ../../common.sh
\. ../../common.sh
REMOTE="$PWD/mocks/nvm_ls_remote.txt"
nvm_ls_remote() {

View File

@@ -2,15 +2,15 @@
set -ex
die () { echo $@ ; cleanup ; exit 1; }
die () { echo "$@" ; cleanup ; exit 1; }
cleanup() {
unset -f nvm_remote_version
}
. ../../../nvm.sh
\. ../../../nvm.sh
. ../../common.sh
\. ../../common.sh
nvm_remote_version() {
echo "NVM_VERSION_ONLY:${NVM_VERSION_ONLY-},NVM_LTS:${NVM_LTS-},PATTERN:${PATTERN-}"

View File

@@ -1,8 +1,8 @@
#!/bin/sh
die () { echo $@ ; exit 1; }
die () { echo "$@" ; exit 1; }
. ../../../nvm.sh
\. ../../../nvm.sh
[ "_$(nvm_add_iojs_prefix 1)" = "_iojs-v1" ] || die '"nvm_add_iojs_prefix 1" did not return "iojs-v1"'
[ "_$(nvm_add_iojs_prefix iojs-1)" = "_iojs-v1" ] || die '"nvm_add_iojs_prefix iojs-1" did not return "iojs-v1"'

View File

@@ -1,12 +1,12 @@
#!/bin/sh
die () { echo $@ ; cleanup ; exit 1; }
die () { echo "$@" ; cleanup ; exit 1; }
cleanup () {
rm -rf ../../../alias/test
}
. ../../../nvm.sh
\. ../../../nvm.sh
OUTPUT="$(nvm_alias 2>&1)"
EXPECTED_OUTPUT='An alias is required.'

View File

@@ -1,8 +1,8 @@
#!/bin/sh
die () { echo $@ ; exit 1; }
die () { echo "$@" ; exit 1; }
. ../../../nvm.sh
\. ../../../nvm.sh
[ "_$(nvm_alias_path)" = "_$NVM_DIR/alias" ] || die "nvm_alias_path did not requrn correct location"

View File

@@ -4,9 +4,9 @@ cleanup () {
rm tmp/emptyfile tmp/testfile
rmdir tmp
}
die () { echo $@ ; cleanup; exit 1; }
die () { echo "$@" ; cleanup; exit 1; }
. ../../../nvm.sh
\. ../../../nvm.sh
mkdir -p tmp
touch tmp/emptyfile

View File

@@ -0,0 +1,62 @@
#!/bin/sh
cleanup () {
unset -f die
}
die () { echo -e "$@" ; cleanup ; exit 1; }
if type "clang" > /dev/null 2>&1 ; then
clang_exec="$(type "clang")"
sudo rm -rf "${clang_exec}"
fi
if type "clang++" > /dev/null 2>&1 ; then
clangxx_exec="$(type "clang++")"
sudo rm -rf "${clangxx_exec}"
fi
NVM_ENV=testing \. ../../../nvm.sh
clang() {
if [ "$1" = "--version" ]; then
echo "${VERSION_MESSAGE}"
fi
}
assert_version_is() {
if [ "${1}" != "${2}" ]; then
die "Expected ${2}, got ${1}, origin version message:\n${VERSION_MESSAGE}"
return 1
fi
}
CLANG_VERSION_ON_DEBIAN_JESSIE="Debian clang version 3.5.0-10 (tags/RELEASE_350/final) (based on LLVM 3.5.0)
Target: x86_64-pc-linux-gnu
Thread model: posix"
CLANG_VERSION_ON_UBUNTU_TRUSTY="Ubuntu clang version 3.4-1ubuntu3 (tags/RELEASE_34/final) (based on LLVM 3.4)
Target: x86_64-pc-linux-gnu
Thread model: posix"
CLANG_VERSION_ON_ARCHLINUX="clang version 3.9.0 (tags/RELEASE_390/final)
Target: x86_64-unknown-linux-gnu
Thread model: posix
InstalledDir: /usr/sbin"
CLANG_VERSION_ON_FREEBSD="FreeBSD clang version 3.4.1 (tags/RELEASE_34/dot1-final 208032) 20140512
Target: x86_64-unknown-freebsd10.3
Thread model: posix"
VERSION_MESSAGE="${CLANG_VERSION_ON_DEBIAN_JESSIE}"
assert_version_is "$(nvm_clang_version)" "3.5.0"
VERSION_MESSAGE="${CLANG_VERSION_ON_UBUNTU_TRUSTY}"
assert_version_is "$(nvm_clang_version)" "3.4"
VERSION_MESSAGE="${CLANG_VERSION_ON_ARCHLINUX}"
assert_version_is "$(nvm_clang_version)" "3.9.0"
VERSION_MESSAGE="${CLANG_VERSION_ON_FREEBSD}"
assert_version_is "$(nvm_clang_version)" "3.4.1"
cleanup

View File

@@ -3,9 +3,9 @@
cleanup () {
unset -f nvm_compute_checksum
}
die () { echo $@ ; cleanup ; exit 1; }
die () { echo "$@" ; cleanup ; exit 1; }
. ../../../nvm.sh
\. ../../../nvm.sh
set -ex

View File

@@ -2,9 +2,9 @@
set -ex
die () { echo $@ ; exit 1; }
die () { echo "$@" ; exit 1; }
. ../../../nvm.sh
\. ../../../nvm.sh
set +x
OUTPUT="$(nvm_compute_checksum 2>&1 >/dev/null || echo)"

View File

@@ -5,9 +5,9 @@ cleanup () {
alias npm='\npm'
unset -f nvm_has npm
}
die () { echo $@ ; exit 1; }
die () { echo "$@" ; exit 1; }
. ../../../nvm.sh
\. ../../../nvm.sh
OUTPUT="$(nvm_die_on_prefix 2>&1)"
EXPECTED_OUTPUT="First argument \"delete the prefix\" must be zero or one"
@@ -36,7 +36,7 @@ nvm_has() { return 0; }
npm() {
local args
args="$@"
if [ "_$args" = "_config get prefix" ]; then
if [ "_$args" = "_config --loglevel=warn get prefix" ]; then
echo "$(nvm_version_dir new)/good prefix"
fi
}
@@ -60,7 +60,7 @@ EXIT_CODE="$(NPM_CONFIG_PREFIX=bar nvm_die_on_prefix 0 foo >/dev/null 2>&1; echo
npm() {
local args
args="$@"
if [ "_$args" = "_config get prefix" ]; then
if [ "_$args" = "_config --loglevel=warn get prefix" ]; then
echo "./bad prefix"
fi
}

View File

@@ -1,10 +1,10 @@
#!/bin/sh
. ../../common.sh
\. ../../common.sh
die () { echo $@ ; exit 1; }
die () { echo "$@" ; exit 1; }
. ../../../nvm.sh
\. ../../../nvm.sh
EXPECTED_OUTPUT="nvm_ensure_default_set: a version is required"
OUTPUT="$(nvm_ensure_default_set 2>&1 >/dev/null)"

View File

@@ -1,11 +1,11 @@
#!/bin/sh
die () { echo $@ ; cleanup ; exit 1; }
die () { echo "$@" ; cleanup ; exit 1; }
cleanup () {
rm -rf "$(nvm_version_path v0.1.2)"
}
. ../../../nvm.sh
\. ../../../nvm.sh
mkdir -p "$(nvm_version_path v0.1.2)"

View File

@@ -1,8 +1,8 @@
#!/bin/sh
die () { echo $@ ; exit 1; }
die () { echo "$@" ; exit 1; }
. ../../../nvm.sh
\. ../../../nvm.sh
[ "_$(nvm_ensure_version_prefix 1)" = "_v1" ] || die '"nvm_ensure_version_prefix 1" did not return "v1"'
[ "_$(nvm_ensure_version_prefix v1)" = "_v1" ] || die '"nvm_ensure_version_prefix v1" did not return "v1"'

View File

@@ -1,6 +1,6 @@
#!/bin/sh
die () { echo $@ ; cleanup ; exit 1; }
die () { echo "$@" ; cleanup ; exit 1; }
setup() {
cleanup
mkdir -p tmp_nvm_find_up/a/b/c/d
@@ -11,7 +11,7 @@ cleanup () {
rm -rf tmp_nvm_find_up
}
. ../../../nvm.sh
\. ../../../nvm.sh
setup

View File

@@ -1,8 +1,8 @@
#!/bin/sh
die () { echo $@ ; exit 1; }
die () { echo "$@" ; exit 1; }
. ../../../nvm.sh
\. ../../../nvm.sh
INPUT="0.1.2"
OUTPUT="$(nvm_format_version "$INPUT")"

View File

@@ -9,9 +9,9 @@ cleanup() {
export PATH=ORIG_PATH
}
die () { cleanup; echo $@ ; exit 1; }
die () { cleanup; echo "$@" ; exit 1; }
. ../../../nvm.sh
\. ../../../nvm.sh
# Directory where mocked binaries used by nvm_get_arch for each OS/arch are
# located

View File

@@ -5,10 +5,10 @@ set -ex
cleanup () {
unset -f nvm_download nvm_get_checksum_alg nvm_get_mirror
}
die () { echo $@ ; cleanup ; exit 1; }
die () { echo "$@" ; cleanup ; exit 1; }
set +e # TODO: fix
. ../../../nvm.sh
\. ../../../nvm.sh
set -e
nvm_get_mirror() {

View File

@@ -2,9 +2,9 @@
set -ex
die () { echo $@ ; exit 1; }
die () { echo "$@" ; exit 1; }
. ../../../nvm.sh
\. ../../../nvm.sh
ALG="$(nvm_get_checksum_alg)"

View File

@@ -1,12 +1,12 @@
#!/bin/sh
die () { echo $@ ; cleanup ; exit 1; }
die () { echo "$@" ; cleanup ; exit 1; }
cleanup() {
unset -f nvm_has
}
. ../../../nvm.sh
\. ../../../nvm.sh
nvm_has() { return 1 ; }

View File

@@ -1,8 +1,8 @@
#!/bin/sh
die () { echo $@ ; exit 1; }
die () { echo "$@" ; exit 1; }
. ../../../nvm.sh
\. ../../../nvm.sh
expect () {
INPUT="$1"

View File

@@ -2,9 +2,9 @@
set -ex
die () { echo $@ ; exit 1; }
die () { echo "$@" ; exit 1; }
. ../../../nvm.sh
\. ../../../nvm.sh
! nvm_get_mirror || die 'unknown release type did not error'
! nvm_get_mirror node || die 'unknown release type did not error'

View File

@@ -1,8 +1,8 @@
#!/bin/sh
die () { echo $@ ; exit 1; }
die () { echo "$@" ; exit 1; }
. ../../../nvm.sh
\. ../../../nvm.sh
nvm_has cat && type cat > /dev/null || die 'nvm_has locates "cat" properly'

View File

@@ -1,9 +1,9 @@
#!/bin/sh
die () { echo $@ ; exit 1; }
die () { echo "$@" ; exit 1; }
. ../../../nvm.sh
. ../../common.sh
\. ../../../nvm.sh
\. ../../common.sh
# Invalid version numbers fail
assert_not_ok nvm_has_solaris_binary ""

View File

@@ -5,9 +5,9 @@ cleanup () {
rm "${NVM_DIR}/versions/io.js/v0.1.2/iojs"
rmdir "${NVM_DIR}/versions/io.js/v0.1.2"
}
die () { echo $@ ; exit 1; }
die () { echo "$@" ; exit 1; }
. ../../../nvm.sh
\. ../../../nvm.sh
mkdir "${NVM_DIR}/versions/io.js/v0.1.2"
touch "${NVM_DIR}/versions/io.js/v0.1.2/node"

View File

@@ -1,11 +1,11 @@
#!/bin/sh
. ../../../nvm.sh
\. ../../../nvm.sh
cleanup () {
rm -rf "${NVM_DIR}/v0.1.2/node"
}
die () { echo $@ ; exit 1; }
die () { echo "$@" ; exit 1; }
mkdir "${NVM_DIR}/v0.1.2"
touch "${NVM_DIR}/v0.1.2/node"

View File

@@ -1,7 +1,7 @@
#!/bin/sh
die () { echo $@ ; exit 1; }
die () { echo "$@" ; exit 1; }
. ../../../nvm.sh
\. ../../../nvm.sh
[ "$(nvm_iojs_prefix)" = "iojs" ] || die '"nvm_iojs_prefix" did not return the string "iojs". why did this fail?!'

View File

@@ -1,9 +1,9 @@
#!/bin/sh
cleanup () { unalias foo; unalias grep; }
die () { echo $@ ; cleanup ; exit 1; }
die () { echo "$@" ; cleanup ; exit 1; }
. ../../../nvm.sh
\. ../../../nvm.sh
alias foo='bar'
nvm_is_alias foo || die '"nvm_is_alias foo" was not true'

View File

@@ -1,8 +1,8 @@
#!/bin/sh
die () { echo $@ ; exit 1; }
die () { echo "$@" ; exit 1; }
. ../../../nvm.sh
\. ../../../nvm.sh
nvm_is_iojs_version 'iojs-' || die '"nvm_is_iojs_version iojs- was not true'
nvm_is_iojs_version 'iojs-foo' || die '"nvm_is_iojs_version iojs- was not true'

View File

@@ -1,8 +1,8 @@
#!/bin/sh
die () { echo $@ ; exit 1; }
die () { echo "$@" ; exit 1; }
. ../../../nvm.sh
\. ../../../nvm.sh
nvm_is_merged_node_version '4.0' || die '"nvm_is_merged_node_version 4.0 was not true'
nvm_is_merged_node_version '5.1' || die '"nvm_is_merged_node_version 5.1 was not true'

View File

@@ -1,8 +1,8 @@
#!/bin/sh
die () { echo $@ ; exit 1; }
die () { echo "$@" ; exit 1; }
. ../../../nvm.sh
\. ../../../nvm.sh
! nvm_is_natural_num || die 'no args is not false'
! nvm_is_natural_num '' || die 'empty string is not false'

View File

@@ -1,8 +1,8 @@
#!/bin/sh
die () { echo $@ ; exit 1; }
die () { echo "$@" ; exit 1; }
. ../../../nvm.sh
\. ../../../nvm.sh
nvm_is_valid_version 0.1.2 || die "nvm_is_valid_version 0.1.2 did not return 0"
nvm_is_valid_version foo && die "nvm_is_valid_version foo did not return 1"

View File

@@ -4,9 +4,9 @@ TEST_PWD=$(pwd)
TEST_DIR="$TEST_PWD/nvm_ls_current_tmp"
cleanup() { rm -rf "$TEST_DIR"; unset -f return_zero; alias node='node' ; unalias node; }
die () { echo $@ ; cleanup ; exit 1; }
die () { echo "$@" ; cleanup ; exit 1; }
. ../../../nvm.sh
\. ../../../nvm.sh
return_zero () { return 0; }

View File

@@ -1,12 +1,12 @@
#!/bin/sh
die () { echo $@ ; cleanup ; exit 1; }
die () { echo "$@" ; cleanup ; exit 1; }
cleanup() {
unset -f nvm_download
}
. ../../../nvm.sh
\. ../../../nvm.sh
MOCKS_DIR="$PWD/mocks"
@@ -42,7 +42,8 @@ v0.3.8"
# Sanity checks
OUTPUT="$(nvm_print_implicit_alias remote stable)"
EXPECTED_OUTPUT="6.2"
EXPECTED_OUTPUT_PATH="${MOCKS_DIR}/nvm_print_implicit_alias remote stable.txt"
EXPECTED_OUTPUT="$(cat "${EXPECTED_OUTPUT_PATH}")"
[ "_$OUTPUT" = "_$EXPECTED_OUTPUT" ] || die "nvm_print_implicit_alias remote stable did not output $EXPECTED_OUTPUT; got $OUTPUT"
OUTPUT="$(nvm_print_implicit_alias remote unstable)"
@@ -50,7 +51,8 @@ EXPECTED_OUTPUT="0.11"
[ "_$OUTPUT" = "_$EXPECTED_OUTPUT" ] || die "nvm_print_implicit_alias remote unstable did not output $EXPECTED_OUTPUT; got $OUTPUT"
OUTPUT="$(nvm_ls_remote stable)"
EXPECTED_OUTPUT="v6.2.2"
EXPECTED_OUTPUT_PATH="${MOCKS_DIR}/nvm_ls_remote stable.txt"
EXPECTED_OUTPUT="$(cat "${EXPECTED_OUTPUT_PATH}")"
[ "_$OUTPUT" = "_$EXPECTED_OUTPUT" ] || die "nvm_ls_remote stable did not output $EXPECTED_OUTPUT; got $OUTPUT"
OUTPUT="$(nvm_ls_remote unstable)"

View File

@@ -1,8 +1,6 @@
#!/bin/sh
set -ex
die () { echo $@ ; cleanup ; exit 1; }
die () { echo "$@" ; cleanup ; exit 1; }
TEST_PATH="$PWD/test_output"
mkdir -p "$TEST_PATH"
@@ -16,7 +14,7 @@ cleanup() {
rm -rf "$TEST_PATH"
}
. ../../../nvm.sh
\. ../../../nvm.sh
set -ex
@@ -39,7 +37,7 @@ nvm_ls_remote >/dev/null || die "nvm_ls_remote_failed?!"
CALL_COUNT="$(cat "$CALL_COUNT_PATH")"
EXPECTED_COUNT=2
EXPECTED_COUNT=3
[ "$CALL_COUNT" = "$EXPECTED_COUNT" ] || die "nvm_make_alias called $CALL_COUNT times; expected $EXPECTED_COUNT"
ARGS="$(cat "$ALIAS_ARGS_PATH")"

View File

@@ -1,12 +1,12 @@
#!/bin/sh
die () { echo $@ ; cleanup ; exit 1; }
die () { echo "$@" ; cleanup ; exit 1; }
cleanup() {
unset -f nvm_download
}
. ../../../nvm.sh
\. ../../../nvm.sh
# sample output at the time the test was written
TAB_PATH="$PWD/mocks/iojs.org-dist-index.tab"

Some files were not shown because too many files have changed in this diff Show More