Commit Graph

1031 Commits (4bdd57ba0fde705266d34e847873563c57090ba8)

Author SHA1 Message Date
Jordan Harband 2f40eeef2e
[shellcheck] apply v0.8.0 updates 2021-11-19 08:53:43 -08:00
Wu Jiang a284af9228
[New] Add OpenBSD support 2016-04-14 20:57:10 -04:00
Jordan Harband 5b3d188b83
v0.39.0 2021-10-07 10:11:35 -07:00
Matteo De Wint 93e0070a44
[Fix] `nvm_die_on_prefix`: filter prefixed env vars on name only, ignoring values 2020-11-28 15:16:35 +01:00
Jordan Harband ebbd30eb7f
[Fix] `nvm install-latest-npm`: ensure npm 8 does not install on unsupported nodes 2021-10-05 15:13:45 -07:00
Kaito Udagawa 53f9ba8336
[Refactor] Use awk for path stripping
This works with paths which contains regex meta characters.
2016-12-23 01:03:41 +09:00
Axel Svensson 11d71ab24b
[Fix] Regression in 2dad045
Fixes #2599
2021-09-24 01:56:47 +02:00
Jordan Harband b6b6e685a3
[Fix] `set -a`: when this option is set, some `sh` shells break
Fixes #2574
2021-09-14 23:26:31 -07:00
Jordan Harband 2dad0455ec
[Fix] `nvm_die_on_prefix`: avoid grepping env functions in bash
ironically, nvm itself has functions that matched this grep.
2021-09-08 23:49:16 -07:00
Jordan Harband f03f69508e
[Fix] `reinstall-packages`: handle global symlink locations properly
This is a regression caused by npm ls -g in npm 7 no longer returning absolute paths.
2021-09-07 10:14:18 -07:00
Kevin Stolp 291c7c4c47
[Fix] `nvm_ls_remote_index_tab`: handle long version lists 2021-09-03 23:40:13 -07:00
Jordan Harband 5b77f7d023
[Fix] `nvm ls`/`nvm alias`/`nvm_list_aliases`: zsh: when no LTS aliases, no error
Fixes #2575.
2021-09-01 10:06:32 -07:00
Jordan Harband e0df5e92e3
[Robustness] avoid IFS shenanigans: quote arg count/return codes 2021-08-24 09:34:01 -07:00
Jordan Harband 7f2ccd51d4
[Fix] `nvm_get_arch`: suppress error output if `/sbin` does not exist
Introduced by #2469
2021-08-05 08:05:54 -07:00
Jordan Harband b5165ecbe4
[shellcheck] update for new warnings in v0.7.2 2021-05-03 14:19:31 -07:00
nmarghetti f2582275f6
[New] maybe support Windows with WSL, MSYS, Cygwin 2021-01-02 00:03:24 +01:00
Botspot 779a34e6a9
[Fix] `nvm_get_arch`: Rasbperry Pi: armv7l with arm64 kernel, get correct arch
Co-authored-by: Botspot <54716352+Botspot@users.noreply.github.com>
Co-authored-by: Jordan Harband <ljharb@gmail.com>
Co-authored-by: Sladyn Nunes <sladynnunes98@gmail.com>
2021-03-22 14:56:25 -05:00
Jordan Harband 3fea5493a4
v0.38.0 2021-03-29 12:49:10 -07:00
Rodrigo Espinosa de los Monteros 4da7f101a2
[Fix] `nvm_alias`: ensure `lts/-1` returns the one before `lts/*`
Fixes #2461
2021-03-11 16:22:31 -05:00
Lukman 1081ed161b
[New] `install`: add parallel build support for openbsd
Co-authored-by: Lukman <lukmaan.me@gmail.com>
Co-authored-by: Sladyn Nunes <sladynnunes98@gmail.com>
2020-12-26 22:23:35 +05:30
Vesa Vilhonen 52f67b3677
[Fix] `exec`: `--` should stop argument parsing
Co-authored-by: Vesa Vilhonen <vesa@vilhonen.com>
Co-authored-by: Sladyn Nunes <sladynnunes98@gmail.com>
2020-11-20 13:06:28 +02:00
Sladyn Nunes 4fdef427e4
[New] `install`: add `-b` flag to skip building from source
Fixes #2114.
2021-02-16 19:34:23 +05:30
nmarghetti 7f6c0c053a
[Refactor] add `nvm_install_binary_extract` 2021-01-02 00:03:24 +01:00
nmarghetti d396181ffb
[Refactor] add `nvm_get_artifact_compression` 2021-01-02 00:03:24 +01:00
Brandon L. Reiss 3243f7a082
[Fix] Fix potential unbound var error on nvm install
Fixes #2420. When using `nvm install` with an already installed
version, Bash (and potentially other shells) may emit an unbound
variable error when `set -u` is set. The presence of the error depends
on specific shell versions, but appears to happen in MacOS 11.1 (Big
Sur) using a recent Bash version installed via Homebrew (as of this
writing).

The fix accesses `ALIAS` correctly for the case where it is not set by
an `alias` option to `nvm install`.
2021-01-27 13:12:17 -05:00
Hosam Aly 31c5c5c45a
[Fix] avoid parse error with common omz global aliases, in `nvm_print_color_code`
Fixes #2362. Fixes #2372.
2020-11-27 23:17:07 +00:00
Jordan Harband 436cda247e
[Fix] remove `nvm_supports_source_options`
Fixes #2387
2021-01-07 13:00:26 -08:00
Jordan Harband 3c079f16c7
[shellcheck] fix silly shellcheck complaint 2020-12-21 23:47:25 -08:00
Jordan Harband e76b2945c5
[Fix] relax `$PREFIX` checking, to accomodate `npm exec`
Fixes #2379.
2020-12-21 23:03:30 -08:00
Keith Lazuka 86708833c9
[Fix] Use local variable when looping over args
When the `nvm` function is called by a script which itself uses a variable
named `i`, `nvm` clobbers the caller's variable. This happens even if the
caller has declared its variable as local.

See note 1 on https://tldp.org/LDP/abs/html/localvar.html#FTN.AEN18568
2020-12-08 12:28:24 -05:00
Jordan Harband 4b947ec92d
v0.37.2 2020-11-27 21:34:28 -08:00
Jordan Harband 3b57dfec8d
Revert "[Fix] `nvm_die_on_prefix`: only grep lines starting with env var name" (#2347)
This reverts commit 21c0c05130.

Fixes #2360. Fixes #2364. Fixes #2366.
2020-11-27 21:28:12 -08:00
Jordan Harband 661a702cdd
v0.37.1 2020-11-24 21:16:43 -08:00
Dena Burd 6848c16d53
[New] Added `set-colors` command. See details below:
This command allows users to replace default colors with their own custom colors.

 - top-level commands modified: alias, ls, ls-remote
 - helper functions added: nvm_echo_with_colors, nvm_err_with_colors,
nvm_set_colors, nvm_get_colors, nvm_print_color_code
 - functions modified: nvm_print_formatted_alias, nvm_print_versions, nvm_print_alias_path (implicitly), nvm_print_default_alias (implicitly), nvm_list_aliases (implicitly)

We added tests and info on using this command to the README!

Co-authored-by: Dena Burd <29719099+gitburd@users.noreply.github.com>
Co-authored-by: Naomi Quinones <52065567+naomiquinones@users.noreply.github.com>
2020-08-17 14:56:13 -07:00
Matteo De Wint 21c0c05130 [Fix] `nvm_die_on_prefix`: only grep lines starting with env var name 2020-11-16 11:35:26 +01:00
Jordan Harband 4054bd70ce
v0.37.0 2020-11-06 10:11:29 -08:00
Jordan Harband 499d303746
[Perf] `use`/`nvm_die_on_prefix`: replicate npm config algorithm and remove `npm config` call 2020-08-24 22:44:25 -07:00
Dena Burd c72f2c6f21
[Fix] `nvm ls-remote`: accept versions that end with a dot
Fixes #983.
2020-09-24 13:46:29 -07:00
Dylan Armstrong e01060fa2c
[Fix] `nvm_die_on_prefix`: use directory comparison rather than string 2020-10-09 09:43:21 -05:00
Dylan Armstrong 96069da0d5
[Fix] `nvm_ls`: zsh: unset `markdirs` and `local_options`
Fixes #2315.
2020-10-09 09:43:21 -05:00
Jordan Harband 7929190e6e
[Docs] improve `nvm --help` output
Fixes #2301
2020-10-02 22:22:12 -07:00
Jordan Harband 8debf39f24
v0.36.0 2020-09-23 16:18:37 -07:00
Jordan Harband c7ca08d575
[Fix] `latest-npm`: ensure npm 7 is not installed on node < 10 2020-09-23 14:50:33 -07:00
Jordan Harband cf92956e5d
[New] add `nvm_find_project_dir` helper 2020-08-23 14:40:42 -07:00
Jordan Harband 1d88ecfce5
[Fix] `nvm_die_on_prefix`: check that the prefix is inside the version dir, not just the nvm dir
- also pass the version dir as the third argument
2020-08-23 22:50:41 -07:00
Michael Potter f7fbad2bd6
[performance] `nvm_auto`: only call `nvm_ls_current` in `use` mode 2020-08-19 11:40:45 -07:00
Jordan Harband 9dc6f3e4a5
[Refactor] `nvm run`/`nvm exec`: use `NVM_SILENT` consistently internally 2020-08-13 14:37:41 -07:00
Jordan Harband 1c00753fd9
[New] `nvm deactivate`/`nvm which`: add `--silent` 2020-08-13 13:40:32 -07:00
Yash-Singh1 b1200c659b
[Fix] `nvm use`: fix `--silent` when version is omitted
Fixed a bug where --silent mode was failing for nvm use I ran a test
 that just ran ```nvm use node --silent``` that I wrote by myself.
 Unfortunately I noticed a bug where it still prints out some messages in
 different cases. This pull request is to fix that bug. * Added in an argument
 called ***quiet***  to the nvm_rc_version() function at *line 339* * Printed
 anything inside the nvm_rc_version() only in the scenario where quiet mode is
 off * Ran the nvm_rc_version() function in quiet mode only if silent mode is
 on in the "use" command of nvm at *line 2990* * Ran *nvm_echo* and *nvm_err*
 inside the "use" command of nvm only in the scenario where silent mode is off
 (There were 4 scenarios where this was forgotten) * Edited the ```nvm
 deactivate``` command to include a silent mode * Changed the help page to
 include the --silent option for ```nvm deactivate``` * Added in aliases for
 the --silent flag in ```nvm deactivate``` and ```nvm use``` * Used silent
 mode inside the ```nvm use``` when running ```nvm deactivate``` inside it and
 silent mode is on A test was attached in the 'test/slow/nvm use' directory.
 It is named *Running "nvm use node --silent" doesn't print anything*. It runs
 ```nvm use node --silent and checks``` and succeeds if the OUTPUT matches the
 EXPECTED_OUTPUT which is *null*  or *''*. When the test was run locally, it
 still ouputed results if someone deleted some contents of the *.nvm/* folder.
 This output was given from the ```nvm deactivate command```. This was the
 reason that the ```nvm deactivate``` was edited to include silent mode.
2020-08-08 17:27:46 -07:00
Jordan Harband 16b75b7333
[Robustness] add `command` to `xargs`/`rm` in `nvm_get_default_packages`
Fixes #2281.
2020-08-11 10:16:42 -07:00
Naomi Quinones 1bf567bd0b
[Fix] ensure `--help` is intercepted on any command
Co-authored-by: Naomi Quinones <52065567+naomiquinones@users.noreply.github.com>
Co-authored-by: Dena Burd <me@Denas-MacBook-Air.local>
2020-08-04 16:32:19 -07:00
Dimitris Karagiannis a01deb11dc
[patch] Update docs and add warning for 'nvm is not compatible with the npm config "prefix" option' edgecase error on Mac OS 2020-08-03 10:04:20 -07:00
Kayla Altepeter a5aec107df
[New] adding default and alias option to `nvm install`
For: `nvm install 8.12.0` after install:

--alias=8 is equivalent to `nvm alias 8 8.12.0`
--default is equivalent to `nvm alias default 8.12.0`

Co-authored-by: Kayla Altepeter <kayla@kaylaaltepeter.com>
Co-authored-by: Dena Burd <me@Denas-MacBook-Air.local>
Co-authored-by: Jordan Harband <ljharb@gmail.com>
2018-10-22 08:32:29 -05:00
Jordan Harband 424aeb38b4
[Refactor] add `nvm_get_checksum_binary`; use it in `nvm debug` 2020-07-31 22:13:21 -07:00
Jordan Harband abfe0a5891
[Refactor] remove unused `nvm_checksum` function 2020-07-31 22:10:28 -07:00
Naomi Quinones 3561bbc54a
[Fix] `--help`: Add more examples
Fixes #2120.
2020-07-28 17:56:48 -07:00
Jordan Harband 83043c4d3a
[debug] add `whoami` output 2020-07-25 13:38:52 -07:00
Dena Burd 55eafcd814
[New] add `nvm -v` as an alias for `nvm --version`
Fixes #2200.
2020-07-27 10:26:35 -07:00
ritmos 06c3bf6a8f
[Docs] `--help`: explain more clearly that <version> parameter is optional and can be provided by .nvmrc on `nvm install`, `nvm use`, `nvm exec`, and `nvm run`. 2020-06-20 15:15:01 +02:00
DeeDeeG 4b1100e515
[New] `nvm_supports_xz`: Add Mac/FreeBSD xz platform support checks
macOS only supports extracting xz tarballs with `tar` in 10.9 and up.

GNU tar needs an `xz` executable on the `PATH` to extract xz tarballs.

(These are the most common variants of tar, so until further testing
is done, conservatively assume all variants of tar (other than the one
shipped with macOS) need an xz executable on the PATH in order to
decompress xz tarballs.)

Fixes #2155.
2020-01-29 16:20:15 -05:00
Jordan Harband 6575b6b052
[Fix] `install`: improved arg parsing around `--reinstall-packages-from`
Fixes #1762
2020-06-04 16:15:39 -07:00
Sehrope Sarkuni 91a55dd91a
[Refactor] Rename solaris and iojs helper functions to be nvm_ prefixed
Renames node_version_has_solaris_binary and nvm_iojs_version_has_solaris_binary
to be prefixed with nvm_ so they do not show up in tab completion following the
word "node".
2020-05-08 16:08:27 -04:00
Jordan Harband f607f2f783
[Fix] `reinstall-packages`: do not include unmet peer deps
Closes #1948.
2020-03-10 23:51:17 -07:00
Jordan Harband 258938ef66
v0.35.3 2020-03-05 23:13:56 -08:00
Jordan Harband 096ba0d8c3
`uninstall`: add `NVM_DEBUG` to print out a filename as its permissions are checked 2020-03-05 17:40:17 -08:00
Jordan Harband 4626d1aae6
[New] add `lts/-1` etc, to point to an LTS line relative to "latest" 2020-03-04 01:03:36 -08:00
Jordan Harband b9536327ae
[Fix] `nvm ls-remote`: properly label latest LTS versions instead of just the latest one in the filter
Fixes #2166
2020-02-21 21:27:13 -08:00
Bruce A. MacNaughton 6c560b12b6
[New] `use`: set `NVM_INC` to expose the node include path 2020-02-07 06:23:35 -08:00
Jordan Harband f355b327d6
v0.35.2 2019-12-17 22:40:20 -08:00
Jordan Harband 6fa92c82ca
[Fix] if a prefix env var is set (as in npm run), but is correct, do not fail
Fixes #2106.
2019-12-15 23:39:32 -08:00
Jordan Harband 73a513c389
[Fix] allow `nvm unalias x` when `x` is a default alias, but shadowed
Fixes #2122.
2019-11-12 11:16:08 -08:00
Jordan Harband 28bc2fd991
v0.35.1 2019-11-03 10:03:31 -08:00
Jordan Harband 100861d529
[Fix] `install-latest-npm`: `npm` `v6.10` breaks on `node` `v6.0`, `v6.1`, and `v9.0`-`v9.2` 2019-11-02 20:53:18 -07:00
Jordan Harband 94a72ae217
[Fix] `nvm use`: improve help output with bare `nvm use` and no `.nvmrc`
Closes #1914.
2019-10-08 14:40:17 -07:00
Jordan Harband 011810e721
v0.35.0 2019-10-02 00:05:28 -04:00
Sehrope Sarkuni 0b5bb5ccd8
[Fix] `set -u`: Add default empty value for `$NVM_NO_ALIAS`
Adds a default value for NVM_NO_ALIAS so that nvm ls does not error out when run
in a bash nounset/-u (no unset vars) environment.
2019-05-14 08:31:24 -04:00
Jordan Harband e7a5b7992b
[meta] update repo links to point to org 2019-04-24 16:08:34 -07:00
Christopher Sahnwaldt 2410215b6a
[Refactor] add `nvm_stdout_is_terminal` helper 2019-02-24 00:03:19 +01:00
Jordan Harband 43402df896
[Fix] `nvm_supports_source_options`: work around a bug in bash 3.2
See https://github.com/creationix/nvm/issues/1978#issuecomment-453480231

Fixes #1978.
2019-02-26 16:53:36 -08:00
Jordan Harband e0d87528f3
[shellcheck] remove unnecessary overrides 2019-02-24 23:04:13 -08:00
Jordan Harband 226487d358
[Fix] `install`: error out when an argument has `---`
Fixes #1915.
2019-02-25 00:13:50 -08:00
Jordan Harband 216c24fba0
[Docs] `--help`: consolidate some help output 2019-02-24 22:57:06 -08:00
Jordan Harband 4c8ced736d
[Docs] `nvm --help`: add `--no-colors` and `--no-alias` 2019-02-24 00:04:40 -08:00
Jarvis Mercer - Amir Mohammad Safari (AMSL) 1f7f0c2d81
[Docs] add version number to `nvm —help` output 2019-01-27 04:13:12 +03:30
Jordan Harband c6740f5a6e
[New] `nvm ls`: add `--no-alias` to suppress alias output
Per https://github.com/creationix/nvm/issues/1792#issuecomment-466696504
2019-02-23 22:41:46 -08:00
Jordan Harband 58d0933f72
[Fix] attempt to fix a bug in bash 3.2, fixed in 4.4, that improperly exits on `-e` in a test.
See https://gist.github.com/ljharb/6e70a79ac5fcf11a8b9de654a88642aa for details.
2019-02-23 22:21:46 -08:00
Jordan Harband 2a513a1bc0
[Fix] `nvm_ls`: Reverts #1462 to fix io.js sorting.
<details>
<summary>Before this revert:</summary>

```sh
iojs-v3.3.1
iojs-v2.5.0
v0.6.21
v0.7.12
iojs-v1.8.4
v0.8.28
v0.9.12
v0.10.48
v0.11.16
v0.12.9
v0.12.18
v0.12.87
v4.9.1
v5.11.1
v5.12.0
v6.14.4
v6.16.0
v7.10.1
v8.6.0
v8.9.1
v8.10.0
v8.11.3
v8.11.4
v8.12.0
v8.13.0
v8.14.1
v8.15.0
v9.11.2
v10.0.0
v10.1.0
v10.2.1
v10.3.0
v10.4.1
v10.5.0
v10.6.0
v10.7.0
v10.8.0
v10.9.0
v10.10.0
v10.11.0
v10.12.0
v10.13.0
v10.14.2
v10.15.1
v11.0.0
v11.1.0
v11.2.0
v11.3.0
v11.4.0
v11.5.0
v11.6.0
v11.7.0
v11.8.0
v11.9.0
v11.10.0
```
</details>

<details>
<summary>After this revert:</summary>

```sh
v0.6.21
v0.7.12
v0.8.28
v0.9.12
v0.10.48
v0.11.16
v0.12.9
v0.12.18
v0.12.87
iojs-v1.8.4
iojs-v2.5.0
iojs-v3.3.1
v4.9.1
v5.11.1
v5.12.0
v6.14.4
v6.16.0
v7.10.1
v8.6.0
v8.9.1
v8.10.0
v8.11.3
v8.11.4
v8.12.0
v8.13.0
v8.14.1
v8.15.0
v9.11.2
v10.0.0
v10.1.0
v10.2.1
v10.3.0
v10.4.1
v10.5.0
v10.6.0
v10.7.0
v10.8.0
v10.9.0
v10.10.0
v10.11.0
v10.12.0
v10.13.0
v10.14.2
v10.15.1
v11.0.0
v11.1.0
v11.2.0
v11.3.0
v11.4.0
v11.5.0
v11.6.0
v11.7.0
v11.8.0
v11.9.0
v11.10.0
```
</details>

In other words, the sorting needs to happen *before* the `NVM_NODE_PREFIX` is removed.
2019-02-23 15:02:31 -08:00
Jordan Harband 7f9220dbd8
[Fix] `nvm ls`: `--no-colors`: `system`: print an asterisk 2019-02-23 14:41:57 -08:00
Jordan Harband e1bb44f712
[shellcheck] add overrides 2019-02-04 14:45:04 -08:00
Jordan Harband db19450caa
[Fix] `default_packages`: work when the file lacks a trailing newline
Fixes #1995.
2019-02-02 13:45:11 -08:00
Jordan Harband 5c117e6ab3
[Refactor] extract “get default packages” logic to `nvm_get_default_packages` 2019-02-01 13:27:18 -08:00
Lucas Kellner 02997b0753
[Docs] `unalias`: add more specific error message for builtin aliases 2019-01-23 16:39:57 -08:00
Peter Dave Hello cc0750eb5d
[Fix] `install`: Add missing io.js installation message
Fixes #1988
2019-01-22 15:46:29 +08:00
Peter Dave Hello 10f24d6d4b
[Refactor] `nvm.sh`: make coding style more consistent 2018-05-22 20:57:40 +08:00
Peter Dave Hello e367533eb8
[Refactor] Reduce one more `sed` & pipe to speedup 2017-03-28 23:15:35 +08:00
Peter Dave Hello 6534568745 [Fix] Enhance nvm debug for different environments 2019-01-12 14:17:01 +08:00
Jordan Harband 3d9c31d944
v0.34.0 2019-01-07 23:01:16 -08:00
Valerie Mettler 6354b170d7
Improve phrasing of 'nvm current'
To help beginners know that 'nvm current' is talking about node and not nvm.
2019-01-05 12:20:56 -08:00
Peter Dave Hello 14179bc8ce
[shellcheck] Use `-n/-z` instead of `! -z/! -n` condition
https://github.com/koalaman/shellcheck/wiki/SC2236
2018-12-03 13:59:19 +08:00
Jordan Harband 153506c8da
[shellcheck] ignore SC2230 errors 2018-11-25 16:22:25 -08:00