Compare commits
1 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
d2f31a21f3 |
36
README.md
36
README.md
@@ -6,7 +6,7 @@
|
|||||||
</a>
|
</a>
|
||||||
|
|
||||||
|
|
||||||
# Node Version Manager [][3] [][4] [](https://bestpractices.dev/projects/684)
|
# Node Version Manager [][3] [][4] [](https://bestpractices.dev/projects/684)
|
||||||
|
|
||||||
<!-- To update this table of contents, ensure you have run `npm install` then `npm run doctoc` -->
|
<!-- To update this table of contents, ensure you have run `npm install` then `npm run doctoc` -->
|
||||||
<!-- START doctoc generated TOC please keep comment here to allow auto update -->
|
<!-- START doctoc generated TOC please keep comment here to allow auto update -->
|
||||||
@@ -61,8 +61,6 @@
|
|||||||
- [macOS Troubleshooting](#macos-troubleshooting)
|
- [macOS Troubleshooting](#macos-troubleshooting)
|
||||||
- [WSL Troubleshooting](#wsl-troubleshooting)
|
- [WSL Troubleshooting](#wsl-troubleshooting)
|
||||||
- [Maintainers](#maintainers)
|
- [Maintainers](#maintainers)
|
||||||
- [Project Support](#project-support)
|
|
||||||
- [Enterprise Support](#enterprise-support)
|
|
||||||
- [License](#license)
|
- [License](#license)
|
||||||
- [Copyright notice](#copyright-notice)
|
- [Copyright notice](#copyright-notice)
|
||||||
|
|
||||||
@@ -102,10 +100,10 @@ nvm is a version manager for [node.js](https://nodejs.org/en/), designed to be i
|
|||||||
|
|
||||||
To **install** or **update** nvm, you should run the [install script][2]. To do that, you may either download and run the script manually, or use the following cURL or Wget command:
|
To **install** or **update** nvm, you should run the [install script][2]. To do that, you may either download and run the script manually, or use the following cURL or Wget command:
|
||||||
```sh
|
```sh
|
||||||
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.40.0/install.sh | bash
|
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.7/install.sh | bash
|
||||||
```
|
```
|
||||||
```sh
|
```sh
|
||||||
wget -qO- https://raw.githubusercontent.com/nvm-sh/nvm/v0.40.0/install.sh | bash
|
wget -qO- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.7/install.sh | bash
|
||||||
```
|
```
|
||||||
|
|
||||||
Running either of the above commands downloads a script and runs it. The script clones the nvm repository to `~/.nvm`, and attempts to add the source lines from the snippet below to the correct profile file (`~/.bash_profile`, `~/.zshrc`, `~/.profile`, or `~/.bashrc`).
|
Running either of the above commands downloads a script and runs it. The script clones the nvm repository to `~/.nvm`, and attempts to add the source lines from the snippet below to the correct profile file (`~/.bash_profile`, `~/.zshrc`, `~/.profile`, or `~/.bashrc`).
|
||||||
@@ -127,7 +125,7 @@ Eg: `curl ... | NVM_DIR="path/to/nvm"`. Ensure that the `NVM_DIR` does not conta
|
|||||||
|
|
||||||
- The installer can use `git`, `curl`, or `wget` to download `nvm`, whichever is available.
|
- The installer can use `git`, `curl`, or `wget` to download `nvm`, whichever is available.
|
||||||
|
|
||||||
- You can instruct the installer to not edit your shell config (for example if you already get completions via a [zsh nvm plugin](https://github.com/ohmyzsh/ohmyzsh/tree/master/plugins/nvm)) by setting `PROFILE=/dev/null` before running the `install.sh` script. Here's an example one-line command to do that: `PROFILE=/dev/null bash -c 'curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.40.0/install.sh | bash'`
|
- You can instruct the installer to not edit your shell config (for example if you already get completions via a [zsh nvm plugin](https://github.com/ohmyzsh/ohmyzsh/tree/master/plugins/nvm)) by setting `PROFILE=/dev/null` before running the `install.sh` script. Here's an example one-line command to do that: `PROFILE=/dev/null bash -c 'curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.7/install.sh | bash'`
|
||||||
|
|
||||||
#### Troubleshooting on Linux
|
#### Troubleshooting on Linux
|
||||||
|
|
||||||
@@ -175,7 +173,7 @@ You can use a task:
|
|||||||
```yaml
|
```yaml
|
||||||
- name: Install nvm
|
- name: Install nvm
|
||||||
ansible.builtin.shell: >
|
ansible.builtin.shell: >
|
||||||
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.40.0/install.sh | bash
|
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.7/install.sh | bash
|
||||||
args:
|
args:
|
||||||
creates: "{{ ansible_env.HOME }}/.nvm/nvm.sh"
|
creates: "{{ ansible_env.HOME }}/.nvm/nvm.sh"
|
||||||
```
|
```
|
||||||
@@ -237,7 +235,7 @@ If you have `git` installed (requires git v1.7.10+):
|
|||||||
|
|
||||||
1. clone this repo in the root of your user profile
|
1. clone this repo in the root of your user profile
|
||||||
- `cd ~/` from anywhere then `git clone https://github.com/nvm-sh/nvm.git .nvm`
|
- `cd ~/` from anywhere then `git clone https://github.com/nvm-sh/nvm.git .nvm`
|
||||||
1. `cd ~/.nvm` and check out the latest version with `git checkout v0.40.0`
|
1. `cd ~/.nvm` and check out the latest version with `git checkout v0.39.7`
|
||||||
1. activate `nvm` by sourcing it from your shell: `. ./nvm.sh`
|
1. activate `nvm` by sourcing it from your shell: `. ./nvm.sh`
|
||||||
|
|
||||||
Now add these lines to your `~/.bashrc`, `~/.profile`, or `~/.zshrc` file to have it automatically sourced upon login:
|
Now add these lines to your `~/.bashrc`, `~/.profile`, or `~/.zshrc` file to have it automatically sourced upon login:
|
||||||
@@ -843,13 +841,13 @@ If installing nvm on Alpine Linux *is* still what you want or need to do, you sh
|
|||||||
### Alpine Linux 3.13+
|
### Alpine Linux 3.13+
|
||||||
```sh
|
```sh
|
||||||
apk add -U curl bash ca-certificates openssl ncurses coreutils python3 make gcc g++ libgcc linux-headers grep util-linux binutils findutils
|
apk add -U curl bash ca-certificates openssl ncurses coreutils python3 make gcc g++ libgcc linux-headers grep util-linux binutils findutils
|
||||||
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.40.0/install.sh | bash
|
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.7/install.sh | bash
|
||||||
```
|
```
|
||||||
|
|
||||||
### Alpine Linux 3.5 - 3.12
|
### Alpine Linux 3.5 - 3.12
|
||||||
```sh
|
```sh
|
||||||
apk add -U curl bash ca-certificates openssl ncurses coreutils python2 make gcc g++ libgcc linux-headers grep util-linux binutils findutils
|
apk add -U curl bash ca-certificates openssl ncurses coreutils python2 make gcc g++ libgcc linux-headers grep util-linux binutils findutils
|
||||||
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.40.0/install.sh | bash
|
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.7/install.sh | bash
|
||||||
```
|
```
|
||||||
|
|
||||||
_Note: Alpine 3.5 can only install NodeJS versions up to v6.9.5, Alpine 3.6 can only install versions up to v6.10.3, Alpine 3.7 installs versions up to v8.9.3, Alpine 3.8 installs versions up to v8.14.0, Alpine 3.9 installs versions up to v10.19.0, Alpine 3.10 installs versions up to v10.24.1, Alpine 3.11 installs versions up to v12.22.6, Alpine 3.12 installs versions up to v12.22.12, Alpine 3.13 & 3.14 install versions up to v14.20.0, Alpine 3.15 & 3.16 install versions up to v16.16.0 (**These are all versions on the main branch**). Alpine 3.5 - 3.12 required the package `python2` to build NodeJS, as they are older versions to build. Alpine 3.13+ requires `python3` to successfully build newer NodeJS versions, but you can use `python2` with Alpine 3.13+ if you need to build versions of node supported in Alpine 3.5 - 3.15, you just need to specify what version of NodeJS you need to install in the package install script._
|
_Note: Alpine 3.5 can only install NodeJS versions up to v6.9.5, Alpine 3.6 can only install versions up to v6.10.3, Alpine 3.7 installs versions up to v8.9.3, Alpine 3.8 installs versions up to v8.14.0, Alpine 3.9 installs versions up to v10.19.0, Alpine 3.10 installs versions up to v10.24.1, Alpine 3.11 installs versions up to v12.22.6, Alpine 3.12 installs versions up to v12.22.12, Alpine 3.13 & 3.14 install versions up to v14.20.0, Alpine 3.15 & 3.16 install versions up to v16.16.0 (**These are all versions on the main branch**). Alpine 3.5 - 3.12 required the package `python2` to build NodeJS, as they are older versions to build. Alpine 3.13+ requires `python3` to successfully build newer NodeJS versions, but you can use `python2` with Alpine 3.13+ if you need to build versions of node supported in Alpine 3.5 - 3.15, you just need to specify what version of NodeJS you need to install in the package install script._
|
||||||
@@ -952,9 +950,9 @@ You have to make sure that the user directory name in `$HOME` and the user direc
|
|||||||
To change the user directory and/or account name follow the instructions [here](https://support.apple.com/en-us/HT201548)
|
To change the user directory and/or account name follow the instructions [here](https://support.apple.com/en-us/HT201548)
|
||||||
|
|
||||||
[1]: https://github.com/nvm-sh/nvm.git
|
[1]: https://github.com/nvm-sh/nvm.git
|
||||||
[2]: https://github.com/nvm-sh/nvm/blob/v0.40.0/install.sh
|
[2]: https://github.com/nvm-sh/nvm/blob/v0.39.7/install.sh
|
||||||
[3]: https://app.travis-ci.com/nvm-sh/nvm
|
[3]: https://app.travis-ci.com/nvm-sh/nvm
|
||||||
[4]: https://github.com/nvm-sh/nvm/releases/tag/v0.40.0
|
[4]: https://github.com/nvm-sh/nvm/releases/tag/v0.39.7
|
||||||
[Urchin]: https://git.sdf.org/tlevine/urchin
|
[Urchin]: https://git.sdf.org/tlevine/urchin
|
||||||
[Fish]: https://fishshell.com
|
[Fish]: https://fishshell.com
|
||||||
|
|
||||||
@@ -1012,7 +1010,7 @@ Here's what you will need to do:
|
|||||||
If one of these broken versions is installed on your system, the above step will likely still succeed even if you didn't include the `--shared-zlib` flag.
|
If one of these broken versions is installed on your system, the above step will likely still succeed even if you didn't include the `--shared-zlib` flag.
|
||||||
However, later, when you attempt to `npm install` something using your old version of node.js, you will see `incorrect data check` errors.
|
However, later, when you attempt to `npm install` something using your old version of node.js, you will see `incorrect data check` errors.
|
||||||
If you want to avoid the possible hassle of dealing with this, include that flag.
|
If you want to avoid the possible hassle of dealing with this, include that flag.
|
||||||
For more details, see [this issue](https://github.com/nodejs/node/issues/39313) and [this comment](https://github.com/nodejs/node/issues/39313#issuecomment-90.40.076)
|
For more details, see [this issue](https://github.com/nodejs/node/issues/39313) and [this comment](https://github.com/nodejs/node/issues/39313#issuecomment-90.39.776)
|
||||||
|
|
||||||
- Exit back to your native shell.
|
- Exit back to your native shell.
|
||||||
|
|
||||||
@@ -1039,7 +1037,7 @@ Now you should be able to use node as usual.
|
|||||||
If you've encountered this error on WSL-2:
|
If you've encountered this error on WSL-2:
|
||||||
|
|
||||||
```sh
|
```sh
|
||||||
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.40.0/install.sh | bash
|
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.7/install.sh | bash
|
||||||
% Total % Received % Xferd Average Speed Time Time Time Current
|
% Total % Received % Xferd Average Speed Time Time Time Current
|
||||||
Dload Upload Total Spent Left Speed
|
Dload Upload Total Spent Left Speed
|
||||||
0 0 0 0 0 0 0 0 --:--:-- 0:00:09 --:--:-- 0curl: (6) Could not resolve host: raw.githubusercontent.com
|
0 0 0 0 0 0 0 0 --:--:-- 0:00:09 --:--:-- 0curl: (6) Could not resolve host: raw.githubusercontent.com
|
||||||
@@ -1072,16 +1070,6 @@ You can check the contents of the file by running:
|
|||||||
|
|
||||||
Currently, the sole maintainer is [@ljharb](https://github.com/ljharb) - more maintainers are quite welcome, and we hope to add folks to the team over time. [Governance](./GOVERNANCE.md) will be re-evaluated as the project evolves.
|
Currently, the sole maintainer is [@ljharb](https://github.com/ljharb) - more maintainers are quite welcome, and we hope to add folks to the team over time. [Governance](./GOVERNANCE.md) will be re-evaluated as the project evolves.
|
||||||
|
|
||||||
## Project Support
|
|
||||||
|
|
||||||
Only the latest version (v0.40.0 at this time) is supported.
|
|
||||||
|
|
||||||
## Enterprise Support
|
|
||||||
|
|
||||||
If you are unable to update to the latest version of `nvm`, our [partners](https://openjsf.org/ecosystem-sustainability-program) provide commercial security fixes for all unsupported versions:
|
|
||||||
|
|
||||||
- [HeroDevs Never-Ending Support](https://www.herodevs.com/support?utm_source=OpenJS&utm_medium=Link&utm_campaign=nvm_openjs)
|
|
||||||
|
|
||||||
## License
|
## License
|
||||||
|
|
||||||
See [LICENSE.md](./LICENSE.md).
|
See [LICENSE.md](./LICENSE.md).
|
||||||
|
|||||||
@@ -33,7 +33,7 @@ nvm_install_dir() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
nvm_latest_version() {
|
nvm_latest_version() {
|
||||||
nvm_echo "v0.40.0"
|
nvm_echo "v0.39.7"
|
||||||
}
|
}
|
||||||
|
|
||||||
nvm_profile_is_bash_or_zsh() {
|
nvm_profile_is_bash_or_zsh() {
|
||||||
|
|||||||
2
nvm.sh
2
nvm.sh
@@ -4364,7 +4364,7 @@ nvm() {
|
|||||||
NVM_VERSION_ONLY=true NVM_LTS="${NVM_LTS-}" nvm_remote_version "${PATTERN:-node}"
|
NVM_VERSION_ONLY=true NVM_LTS="${NVM_LTS-}" nvm_remote_version "${PATTERN:-node}"
|
||||||
;;
|
;;
|
||||||
"--version" | "-v")
|
"--version" | "-v")
|
||||||
nvm_echo '0.40.0'
|
nvm_echo '0.39.7'
|
||||||
;;
|
;;
|
||||||
"unload")
|
"unload")
|
||||||
nvm deactivate >/dev/null 2>&1
|
nvm deactivate >/dev/null 2>&1
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"name": "nvm",
|
"name": "nvm",
|
||||||
"version": "0.40.0",
|
"version": "0.39.7",
|
||||||
"description": "Node Version Manager - Simple bash script to manage multiple active node.js versions",
|
"description": "Node Version Manager - Simple bash script to manage multiple active node.js versions",
|
||||||
"directories": {
|
"directories": {
|
||||||
"test": "test"
|
"test": "test"
|
||||||
@@ -45,7 +45,7 @@
|
|||||||
"eclint": "^2.8.1",
|
"eclint": "^2.8.1",
|
||||||
"markdown-link-check": "^3.12.2",
|
"markdown-link-check": "^3.12.2",
|
||||||
"replace": "^1.2.2",
|
"replace": "^1.2.2",
|
||||||
"semver": "^7.6.3",
|
"semver": "^7.6.2",
|
||||||
"urchin": "^0.0.5"
|
"urchin": "^0.0.5"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -245,3 +245,8 @@ _json_parse() {
|
|||||||
nvm_json_extract() {
|
nvm_json_extract() {
|
||||||
nvm_json_tokenize | _json_parse | grep -e "${1}" | awk '{print $2 $3}'
|
nvm_json_tokenize | _json_parse | grep -e "${1}" | awk '{print $2 $3}'
|
||||||
}
|
}
|
||||||
|
|
||||||
|
# ensures that commands are run as if in a terminal
|
||||||
|
run_in_terminal() {
|
||||||
|
script -q -a /dev/null sh -c "\. ../nvm.sh ; $*"
|
||||||
|
}
|
||||||
|
|||||||
@@ -5,20 +5,20 @@
|
|||||||
|
|
||||||
die () { echo "$@" ; exit 1; }
|
die () { echo "$@" ; exit 1; }
|
||||||
|
|
||||||
if [ -n "$ZSH_VERSION" ]; then
|
if [ -n "${ZSH_VERSION}" ]; then
|
||||||
# set clobber option in order to test that this does not produce any
|
# set clobber option in order to test that this does not produce any
|
||||||
# incompatibilities
|
# incompatibilities
|
||||||
setopt noclobber
|
setopt noclobber
|
||||||
fi
|
fi
|
||||||
|
|
||||||
nvm alias test-stable-1 0.0.2 || die '`nvm alias test-stable-1 0.0.2` failed'
|
nvm alias test-stable-1 0.0.2 || die "\`nvm alias test-stable-1 0.0.2\` failed"
|
||||||
|
|
||||||
OUTPUT="$(nvm alias test-stable-1 | strip_colors)"
|
OUTPUT="$(run_in_terminal nvm alias test-stable-1 | strip_colors)"
|
||||||
EXPECTED_OUTPUT='test-stable-1 -> 0.0.2 (-> v0.0.2)'
|
EXPECTED_OUTPUT='test-stable-1 -> 0.0.2 (-> v0.0.2)'
|
||||||
echo "$OUTPUT" | \grep -F "$EXPECTED_OUTPUT" || die "nvm alias test-stable-1 0.0.2 did not set test-stable-1 to 0.0.2: got '$OUTPUT'"
|
echo "${OUTPUT}" | \grep -F "${EXPECTED_OUTPUT}" || die "nvm alias test-stable-1 0.0.2 did not set test-stable-1 to 0.0.2: got '${OUTPUT}'"
|
||||||
|
|
||||||
nvm alias test-stable-1 0.0.1 || die '`nvm alias test-stable-1 0.0.1` failed'
|
nvm alias test-stable-1 0.0.1 || die "\`nvm alias test-stable-1 0.0.1\` failed"
|
||||||
|
|
||||||
OUTPUT="$(nvm alias test-stable-1 | strip_colors)"
|
OUTPUT="$(run_in_terminal nvm alias test-stable-1 | strip_colors)"
|
||||||
EXPECTED_OUTPUT='test-stable-1 -> 0.0.1 (-> v0.0.1)'
|
EXPECTED_OUTPUT='test-stable-1 -> 0.0.1 (-> v0.0.1)'
|
||||||
echo "$OUTPUT" | \grep -F "$EXPECTED_OUTPUT" || die "nvm alias test-stable-1 0.0.1 did not set test-stable-1 to 0.0.1: got '$OUTPUT'"
|
echo "$OUTPUT" | \grep -F "${EXPECTED_OUTPUT}" || die "nvm alias test-stable-1 0.0.1 did not set test-stable-1 to 0.0.1: got '${OUTPUT}'"
|
||||||
|
|||||||
@@ -5,7 +5,7 @@
|
|||||||
|
|
||||||
die () { echo "$@" ; exit 1; }
|
die () { echo "$@" ; exit 1; }
|
||||||
|
|
||||||
NVM_ALIAS_OUTPUT=$(nvm alias | strip_colors)
|
NVM_ALIAS_OUTPUT=$(run_in_terminal nvm alias | strip_colors)
|
||||||
|
|
||||||
EXPECTED_STABLE="$(nvm_print_implicit_alias local stable)"
|
EXPECTED_STABLE="$(nvm_print_implicit_alias local stable)"
|
||||||
STABLE_VERSION="$(nvm_version "$EXPECTED_STABLE")"
|
STABLE_VERSION="$(nvm_version "$EXPECTED_STABLE")"
|
||||||
|
|||||||
@@ -19,31 +19,31 @@ make_fake_node v0.9.1
|
|||||||
make_fake_iojs v0.2.1
|
make_fake_iojs v0.2.1
|
||||||
|
|
||||||
EXPECTED_STABLE="$(nvm_print_implicit_alias local stable)"
|
EXPECTED_STABLE="$(nvm_print_implicit_alias local stable)"
|
||||||
STABLE_VERSION="$(nvm_version "$EXPECTED_STABLE")"
|
STABLE_VERSION="$(nvm_version "${EXPECTED_STABLE}")"
|
||||||
|
|
||||||
EXPECTED_UNSTABLE="$(nvm_print_implicit_alias local unstable)"
|
EXPECTED_UNSTABLE="$(nvm_print_implicit_alias local unstable)"
|
||||||
UNSTABLE_VERSION="$(nvm_version "$EXPECTED_UNSTABLE")"
|
UNSTABLE_VERSION="$(nvm_version "${EXPECTED_UNSTABLE}")"
|
||||||
|
|
||||||
[ "_$STABLE_VERSION" != "_$UNSTABLE_VERSION" ] \
|
[ "_${STABLE_VERSION}" != "_${UNSTABLE_VERSION}" ] \
|
||||||
|| die "stable and unstable versions are the same!"
|
|| die "stable and unstable versions are the same!"
|
||||||
|
|
||||||
nvm alias stable "$EXPECTED_UNSTABLE"
|
nvm alias stable "${EXPECTED_UNSTABLE}"
|
||||||
nvm alias unstable "$EXPECTED_STABLE"
|
nvm alias unstable "${EXPECTED_STABLE}"
|
||||||
nvm alias node stable
|
nvm alias node stable
|
||||||
nvm alias iojs unstable
|
nvm alias iojs unstable
|
||||||
|
|
||||||
NVM_ALIAS_OUTPUT=$(nvm alias | strip_colors)
|
NVM_ALIAS_OUTPUT=$(run_in_terminal nvm alias | strip_colors)
|
||||||
|
|
||||||
echo "$NVM_ALIAS_OUTPUT" | command grep -F "stable -> $EXPECTED_UNSTABLE (-> $UNSTABLE_VERSION)" \
|
echo "${NVM_ALIAS_OUTPUT}" | command grep -F "stable -> ${EXPECTED_UNSTABLE} (-> ${UNSTABLE_VERSION})" \
|
||||||
|| die "nvm alias did not contain the overridden 'stable' alias; got '$NVM_ALIAS_OUTPUT'"
|
|| die "nvm alias did not contain the overridden 'stable' alias; got '${NVM_ALIAS_OUTPUT}'"
|
||||||
|
|
||||||
echo "$NVM_ALIAS_OUTPUT" | command grep -F "unstable -> $EXPECTED_STABLE (-> $STABLE_VERSION)" \
|
echo "${NVM_ALIAS_OUTPUT}" | command grep -F "unstable -> ${EXPECTED_STABLE} (-> ${STABLE_VERSION})" \
|
||||||
|| die "nvm alias did not contain the overridden 'unstable' alias; got '$NVM_ALIAS_OUTPUT'"
|
|| die "nvm alias did not contain the overridden 'unstable' alias; got '${NVM_ALIAS_OUTPUT}'"
|
||||||
|
|
||||||
echo "$NVM_ALIAS_OUTPUT" | command grep -F "node -> stable (-> $UNSTABLE_VERSION)" \
|
echo "${NVM_ALIAS_OUTPUT}" | command grep -F "node -> stable (-> ${UNSTABLE_VERSION})" \
|
||||||
|| die "nvm alias did not contain the overridden 'node' alias; got '$NVM_ALIAS_OUTPUT'"
|
|| die "nvm alias did not contain the overridden 'node' alias; got '${NVM_ALIAS_OUTPUT}'"
|
||||||
|
|
||||||
echo "$NVM_ALIAS_OUTPUT" | command grep -F "iojs -> unstable (-> $STABLE_VERSION)" \
|
echo "${NVM_ALIAS_OUTPUT}" | command grep -F "iojs -> unstable (-> ${STABLE_VERSION})" \
|
||||||
|| die "nvm alias did not contain the overridden 'iojs' alias; got '$NVM_ALIAS_OUTPUT'"
|
|| die "nvm alias did not contain the overridden 'iojs' alias; got '${NVM_ALIAS_OUTPUT}'"
|
||||||
|
|
||||||
cleanup
|
cleanup
|
||||||
|
|||||||
@@ -5,7 +5,7 @@
|
|||||||
|
|
||||||
die () { echo "$@" ; exit 1; }
|
die () { echo "$@" ; exit 1; }
|
||||||
|
|
||||||
NVM_ALIAS_OUTPUT="$(nvm alias | strip_colors)"
|
NVM_ALIAS_OUTPUT="$(run_in_terminal nvm alias | strip_colors)"
|
||||||
echo "$NVM_ALIAS_OUTPUT" | \grep -F 'test-stable-1 -> 0.0.1 (-> v0.0.1)' \
|
echo "$NVM_ALIAS_OUTPUT" | \grep -F 'test-stable-1 -> 0.0.1 (-> v0.0.1)' \
|
||||||
|| die "did not find test-stable-1 alias; got '$NVM_ALIAS_OUTPUT'"
|
|| die "did not find test-stable-1 alias; got '$NVM_ALIAS_OUTPUT'"
|
||||||
echo "$NVM_ALIAS_OUTPUT" | \grep -F 'test-stable-2 -> 0.0.2 (-> v0.0.2)' \
|
echo "$NVM_ALIAS_OUTPUT" | \grep -F 'test-stable-2 -> 0.0.2 (-> v0.0.2)' \
|
||||||
|
|||||||
@@ -12,9 +12,9 @@ nvm_ensure_default_set 0.3 || die "'nvm_ensure_default_set' with an existing def
|
|||||||
|
|
||||||
nvm unalias default || die "'nvm unalias default' failed"
|
nvm unalias default || die "'nvm unalias default' failed"
|
||||||
|
|
||||||
OUTPUT="$(nvm_ensure_default_set 0.2)"
|
OUTPUT="$(run_in_terminal nvm_ensure_default_set 0.2)"
|
||||||
EXPECTED_OUTPUT="Creating default alias: default -> 0.2 (-> iojs-v0.2.10)"
|
EXPECTED_OUTPUT="Creating default alias: default -> 0.2 (-> iojs-v0.2.10)"
|
||||||
EXIT_CODE="$?"
|
EXIT_CODE="$?"
|
||||||
|
|
||||||
[ "_$(echo "$OUTPUT" | strip_colors)" = "_$EXPECTED_OUTPUT" ] || die "'nvm_ensure_default_set 0.2' did not output '$EXPECTED_OUTPUT', got '$OUTPUT'"
|
[ "_$(echo "${OUTPUT}" | strip_colors)" = "_${EXPECTED_OUTPUT}" ] || die "'nvm_ensure_default_set 0.2' did not output '${EXPECTED_OUTPUT}', got '${OUTPUT}'"
|
||||||
[ "_$EXIT_CODE" = "_0" ] || die "'nvm_ensure_default_set 0.2' did not exit with 0, got $EXIT_CODE"
|
[ "_${EXIT_CODE}" = "_0" ] || die "'nvm_ensure_default_set 0.2' did not exit with 0, got ${EXIT_CODE}"
|
||||||
|
|||||||
@@ -2,28 +2,30 @@
|
|||||||
|
|
||||||
set -e
|
set -e
|
||||||
|
|
||||||
die () { echo "$@" ; cleanup ; exit 1; }
|
die() { echo "$@" ; cleanup ; exit 1; }
|
||||||
|
|
||||||
cleanup() {
|
cleanup() {
|
||||||
unset -f nvm_download nvm_ls_remote nvm_ls_remote_iojs
|
unset -f nvm_download nvm_ls_remote nvm_ls_remote_iojs
|
||||||
if [ -n TEMP_NVM_COLORS ]; then
|
if [ -n "${TEMP_NVM_COLORS}" ]; then
|
||||||
export NVM_COLORS=TEMP_NVM_COLORS
|
export NVM_COLORS="${TEMP_NVM_COLORS}"
|
||||||
fi
|
fi
|
||||||
unset TEMP_NVM_COLORS
|
unset TEMP_NVM_COLORS
|
||||||
}
|
}
|
||||||
|
|
||||||
\. ../../../nvm.sh
|
\. ../../../nvm.sh
|
||||||
if [ -n ${NVM_COLORS} ]; then
|
|
||||||
export TEMP_NVM_COLORS=NVM_COLORS
|
if [ -n "${NVM_COLORS}" ]; then
|
||||||
|
export TEMP_NVM_COLORS="${NVM_COLORS}"
|
||||||
unset NVM_COLORS
|
unset NVM_COLORS
|
||||||
fi
|
fi
|
||||||
|
|
||||||
nvm deactivate 2>/dev/null || die 'unable to deactivate'
|
nvm deactivate 2>/dev/null || die '1: unable to deactivate'
|
||||||
|
|
||||||
\. ../../common.sh
|
\. ../../common.sh
|
||||||
|
|
||||||
MOCKS_DIR="$PWD/mocks"
|
MOCKS_DIR="${PWD}/mocks"
|
||||||
|
|
||||||
|
# shellcheck disable=SC2317
|
||||||
nvm_download() {
|
nvm_download() {
|
||||||
if [ "$*" = "-L -s $(nvm_get_mirror node std)/index.tab -o -" ]; then
|
if [ "$*" = "-L -s $(nvm_get_mirror node std)/index.tab -o -" ]; then
|
||||||
cat "$MOCKS_DIR/nodejs.org-dist-index.tab"
|
cat "$MOCKS_DIR/nodejs.org-dist-index.tab"
|
||||||
@@ -33,14 +35,14 @@ nvm_download() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
EXPECTED_OUTPUT_PATH="${MOCKS_DIR}/nvm ls-remote lts.txt"
|
EXPECTED_OUTPUT_PATH="${MOCKS_DIR}/nvm ls-remote lts.txt"
|
||||||
OUTPUT="$(nvm ls-remote --lts | sed 's/[ \t]*$//')"
|
OUTPUT="$(run_in_terminal nvm ls-remote --lts | sed 's/[ \t]*$//')"
|
||||||
EXPECTED_OUTPUT="$(cat "$EXPECTED_OUTPUT_PATH" | sed 's/[ \t]*$//' )"
|
EXPECTED_OUTPUT="$(cat "${EXPECTED_OUTPUT_PATH}" | sed 's/[ \t]*$//' )"
|
||||||
[ "_$OUTPUT" = "_$EXPECTED_OUTPUT" ] || die "nvm ls-remote --lts did not output expected sorted versions; got $(echo ">$OUTPUT<") expected $(echo ">$EXPECTED_OUTPUT<")"
|
[ "_$OUTPUT" = "_${EXPECTED_OUTPUT}" ] || die "2: nvm ls-remote --lts did not output expected sorted versions; got >${OUTPUT}< expected 1 >${EXPECTED_OUTPUT}<"
|
||||||
|
|
||||||
EXPECTED_OUTPUT_PATH="${MOCKS_DIR}/nvm ls-remote lts.txt"
|
EXPECTED_OUTPUT_PATH="${MOCKS_DIR}/nvm ls-remote lts.txt"
|
||||||
OUTPUT="$(nvm ls-remote "lts/*" | sed 's/[ \t]*$//')"
|
OUTPUT="$(run_in_terminal nvm ls-remote 'lts/*' | sed 's/[ \t]*$//')"
|
||||||
EXPECTED_OUTPUT="$(cat "$EXPECTED_OUTPUT_PATH" | sed 's/[ \t]*$//' )"
|
EXPECTED_OUTPUT="$(cat "${EXPECTED_OUTPUT_PATH}" | sed 's/[ \t]*$//' )"
|
||||||
[ "_$OUTPUT" = "_$EXPECTED_OUTPUT" ] || die "nvm ls-remote lts/* did not output expected sorted versions; got $(echo ">$OUTPUT<") expected $(echo ">$EXPECTED_OUTPUT<")"
|
[ "_$OUTPUT" = "_${EXPECTED_OUTPUT}" ] || die "3: nvm ls-remote lts/* did not output expected sorted versions; got >${OUTPUT}< expected 2 >${EXPECTED_OUTPUT}<"
|
||||||
|
|
||||||
MOCKS_DIR="$PWD/mocks"
|
MOCKS_DIR="$PWD/mocks"
|
||||||
LTS_NAMES_PATH="${MOCKS_DIR}/LTS_names.txt"
|
LTS_NAMES_PATH="${MOCKS_DIR}/LTS_names.txt"
|
||||||
@@ -48,26 +50,26 @@ LTS_LIST="$(cat "${LTS_NAMES_PATH}" | tail -n +2)"
|
|||||||
|
|
||||||
INDEX=1
|
INDEX=1
|
||||||
printf '%s\n' "${LTS_LIST}" | while IFS= read -r LTS; do
|
printf '%s\n' "${LTS_LIST}" | while IFS= read -r LTS; do
|
||||||
ACTUAL="$(nvm ls-remote "lts/-${INDEX}" | sed 's/[ \t]*$//')"
|
ACTUAL="$(run_in_terminal nvm ls-remote "lts/-${INDEX}" | sed 's/[ \t]*$//')"
|
||||||
MESSAGE="for lts/-${INDEX} (${LTS})"
|
MESSAGE="for lts/-${INDEX} (${LTS})"
|
||||||
EXPECTED="$(nvm ls-remote "lts/${LTS}" | sed 's/[ \t]*$//')"
|
EXPECTED="$(run_in_terminal nvm ls-remote "lts/${LTS}" | sed 's/[ \t]*$//')"
|
||||||
[ "${ACTUAL}" = "${EXPECTED}" ] || die "${MESSAGE}: expected >${EXPECTED}<, got >${ACTUAL}<"
|
[ "${ACTUAL}" = "${EXPECTED}" ] || die "4: ${MESSAGE}: expected >${EXPECTED}<, got >${ACTUAL}<"
|
||||||
|
|
||||||
INDEX=$(($INDEX + 1))
|
INDEX=$(($INDEX + 1))
|
||||||
done
|
done
|
||||||
|
|
||||||
REMOTE="$PWD/mocks/nvm_ls_remote.txt"
|
REMOTE="${PWD}/mocks/nvm_ls_remote.txt"
|
||||||
nvm_ls_remote() {
|
nvm_ls_remote() {
|
||||||
cat "$REMOTE"
|
cat "${REMOTE}"
|
||||||
}
|
}
|
||||||
REMOTE_IOJS="$PWD/mocks/nvm_ls_remote_iojs.txt"
|
REMOTE_IOJS="${PWD}/mocks/nvm_ls_remote_iojs.txt"
|
||||||
nvm_ls_remote_iojs() {
|
nvm_ls_remote_iojs() {
|
||||||
cat "$REMOTE_IOJS"
|
cat "${REMOTE_IOJS}"
|
||||||
}
|
}
|
||||||
|
|
||||||
EXPECTED_OUTPUT_PATH="${MOCKS_DIR}/nvm ls-remote.txt"
|
EXPECTED_OUTPUT_PATH="${MOCKS_DIR}/nvm ls-remote.txt"
|
||||||
OUTPUT="$(nvm ls-remote | sed 's/[ \t]*$//')"
|
OUTPUT="$(run_in_terminal nvm ls-remote | sed 's/[ \t]*$//')"
|
||||||
EXPECTED_OUTPUT="$(cat "$EXPECTED_OUTPUT_PATH" | sed 's/[ \t]*$//' )"
|
EXPECTED_OUTPUT="$(cat "${EXPECTED_OUTPUT_PATH}" | sed 's/[ \t]*$//' )"
|
||||||
[ "_$OUTPUT" = "_$EXPECTED_OUTPUT" ] || die "bare nvm ls-remote did not output expected sorted versions; got $(echo ">$OUTPUT<") expected $(echo ">$EXPECTED_OUTPUT<")"
|
[ "_${OUTPUT}" = "_${EXPECTED_OUTPUT}" ] || die "5: bare nvm ls-remote did not output expected sorted versions; got >${OUTPUT}< expected >${EXPECTED_OUTPUT}<"
|
||||||
|
|
||||||
cleanup
|
cleanup
|
||||||
|
|||||||
@@ -7,9 +7,9 @@ die () { echo "$@" ; exit 1; }
|
|||||||
\. ../../../nvm.sh
|
\. ../../../nvm.sh
|
||||||
|
|
||||||
EXPECTED_OUTPUT="nvm_ensure_default_set: a version is required"
|
EXPECTED_OUTPUT="nvm_ensure_default_set: a version is required"
|
||||||
OUTPUT="$(nvm_ensure_default_set 2>&1 >/dev/null)"
|
OUTPUT="$(run_in_terminal nvm_ensure_default_set 2>&1 >/dev/null | strip_colors)"
|
||||||
EXIT_CODE="$?"
|
EXIT_CODE="$?"
|
||||||
[ "_$(echo "$OUTPUT" | strip_colors)" = "_$EXPECTED_OUTPUT" ] || die "'nvm_ensure_default_set' did not output "$EXPECTED_OUTPUT", got "$OUTPUT""
|
[ "_${OUTPUT}" = "_${EXPECTED_OUTPUT}" ] || die "'nvm_ensure_default_set' did not output >${EXPECTED_OUTPUT}<, got >${OUTPUT}<"
|
||||||
[ "_$EXIT_CODE" = "_1" ] || die "'nvm_ensure_default_set' did not exit with 1, got "$EXIT_CODE""
|
[ "_$EXIT_CODE" = "_1" ] || die "'nvm_ensure_default_set' did not exit with 1, got >${EXIT_CODE}<"
|
||||||
|
|
||||||
# see test/fast/Aliases for remaining nvm_ensure_default_set tests
|
# see test/fast/Aliases for remaining nvm_ensure_default_set tests
|
||||||
|
|||||||
@@ -8,12 +8,12 @@ cleanup() {
|
|||||||
|
|
||||||
\. ../../../nvm.sh
|
\. ../../../nvm.sh
|
||||||
|
|
||||||
MOCKS_DIR="$PWD/mocks"
|
MOCKS_DIR="${PWD}/mocks"
|
||||||
|
|
||||||
# sample output at the time the test was written
|
# sample output at the time the test was written
|
||||||
TAB_PATH="$MOCKS_DIR/nodejs.org-dist-index.tab"
|
TAB_PATH="${MOCKS_DIR}/nodejs.org-dist-index.tab"
|
||||||
nvm_download() {
|
nvm_download() {
|
||||||
cat "$TAB_PATH"
|
cat "${TAB_PATH}"
|
||||||
}
|
}
|
||||||
|
|
||||||
EXPECTED_OUTPUT_PATH="$MOCKS_DIR/nvm_ls_remote.txt"
|
EXPECTED_OUTPUT_PATH="$MOCKS_DIR/nvm_ls_remote.txt"
|
||||||
|
|||||||
Reference in New Issue
Block a user