Commit Graph

496 Commits

Author SHA1 Message Date
Jordan Harband
b1fa143dd8
[Fix] nvm_get_mirror: ensure only a valid URL is allowed 2023-12-02 14:44:46 -08:00
Jordan Harband
4bdd57ba0f
[Fix] install.sh: when NVM_INSTALL_GITHUB_REPO is set, issue a warning
This should only annoy those testing their PRs; real users should never set this env var
2023-11-02 21:10:09 -07:00
Jordan Harband
d02ddcac2c
[Fix] nvm_get_mirror: disallow some non-URL characters
This should be improved in the future, but is fine for now
2023-11-01 21:01:28 -07:00
Andrius Solopovas
ef7fc2f2c0
[Fix] nvm_get_arch: proper value for alpine linux 2023-09-30 23:54:11 +01:00
Jordan Harband
6743aef70c
[New] nvm_resolve_alias: only resolve one line of a multiline alias file 2023-10-23 14:41:14 -07:00
Jordan Harband
10cdda081f
[Tests] update test mocks (new LTS, iron) 2023-10-25 15:39:12 -07:00
Jordan Harband
8241287349
[New] aliases: skip leading blank lines in alias file 2023-10-23 14:06:19 -07:00
Jordan Harband
bfce5889f7
[Test] update test mocks 2023-10-23 14:53:39 -07:00
zhangdiandian
1b102ab9a6
[Tests] fix filename typo
Signed-off-by: zhangdiandian <1635468471@qq.com>
2023-10-09 07:31:04 +00:00
Oliver Henshaw
15eba7b7e6
[Fix] nvm_strip_path: Preserve leading/trailing colons
Path lists in environmental variables often give special meaning to
empty entries (e.g. in PATH or MANPATH). These are represented by
leading or trailing colons, or by doubled colons in the middle of the
list.

Adjust the awk invocation to correctly deal with trailing colons by
printing the separator before every field except the first, and then
printing the final separator that is read from the input - this will
either be a colon or the null string. This preserves leading and
trailing colons in all cases while not adding extra colons in the wrong
place.

Add test to confirm the correct behaviour.

Fixes #3144
2023-06-21 15:47:52 +01:00
Jordan Harband
55075db96d
[Tests] add some nvm_do_install tests 2022-12-27 22:57:07 -08:00
Deniz
5410ae57ba
[Fix] fix node download link for armv8l
Fixes #3035
2023-04-29 16:41:31 -07:00
Leo Zlotnikov
0d9b5c2a00
[Fix] fix directory traversal when workdir path is not readable 2023-04-08 17:24:41 +01:00
Jordan Harband
b1331c20b0
[Tests] add unit tests for nvm_download_artifact 2023-04-06 09:23:33 -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
Jordan Harband
07c02d43fe
[Tests] nvm install-latest-npm: node < 0.10 breaks with npm with dropped support for TLS < 1.2 2021-09-29 10:47:34 -07:00
Jordan Harband
fa63399991
[Tests] postcss v7.0.36 stopped working on node 0.10; downgrade to v4 2021-09-09 00:05:09 -07:00
Jordan Harband
c169d622ff
[Tests] update mocks 2021-09-04 08:57:36 -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
Thomas Geirhovd
e98e9d9e4b
[Fix] install: Detect correct profile based on $SHELL var 2021-08-12 15:51:32 +02:00
nmarghetti
f2582275f6
[New] maybe support Windows with WSL, MSYS, Cygwin 2021-01-02 00:03:24 +01:00
nmarghetti
d118be8fd4
[Tests] Add unit tests for nvm_is_version_installed 2021-02-21 18:48:43 +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
Sladyn Nunes
2b5e53fcd5
[Fix] install script: check the proper version; fetch tags also
Co-authored-by: Sladyn Nunes <sladynnunes98@gmail.com>
Co-authored-by: Jordan Harband <ljharb@gmail.com>
2021-04-01 19:06:40 +05:30
Jordan Harband
f534fde760
[Tests] node-gyp v8 breaks this test 2021-04-06 12:36:07 -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
Jordan Harband
641f86879f
[Tests] update mocks
- make call count test depend on mocks
2021-03-11 13:06:41 -08:00
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
Dena Burd
2fea55fdb5
[Tests] add test that fails without fix for #2362 2021-01-15 14:07:47 -08:00
nmarghetti
502089ae30 [New] install script: Allow installation from other repository also for git method 2021-01-14 00:10:19 +01:00
nmarghetti
60e78d3ec1
[Tests] Add unit test for nvm_download 2021-01-13 02:26:38 +01:00
nmarghetti
9f3397afa4
[Tests] add nvm_grep to install script, fix tests 2021-01-08 18:54:40 +01:00
Jordan Harband
436cda247e
[Fix] remove nvm_supports_source_options
Fixes #2387
2021-01-07 13:00:26 -08:00
nmarghetti
9849bf494d
[meta] Rename some files to be more cross platform 2021-01-04 00:49:05 +01:00
nmarghetti
4e9df33cb7
[New] install script: Allow installation from other repository 2020-12-27 10:09:29 +01:00
David Moles
d4eba354b5 [Fix] install: Ignore npm command under $NVM_DIR when checking for global modules 2020-11-30 15:22:24 -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
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
Alex Aubuchon
00af6341f7
[Tests] Run fast test suite in clean environment 2020-11-03 19:05:34 -05: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
Alex Aubuchon
f2c5ce459a
[Tests] Fix nvm unload fast test cleanup 2020-10-22 20:43:36 -07:00
Alex Aubuchon
e77ed07ccc
[Tests] Fix nvm_ls_current fast test 2020-10-13 12:32:41 -04: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
6e0562ac6d
[Tests] pin postcss to v7 2020-09-21 15:40:41 -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
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
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
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
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
Magnus Markling
b02617028f
[Tests] Source nvm.sh before defining FILE 2020-03-19 12:13:29 +01: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
c372ff03e0
[Tests] update mocks 2020-03-04 00:44:35 -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
Jordan Harband
e609091a55
[Tests] update test mocks 2020-02-22 09:06:59 -08:00
Jordan Harband
4cd6b4822c
[Tests] try to make nvm unload test more robust 2020-02-09 06:41:52 -10:00
Jordan Harband
f4eddb2c9c
[Tests] ensure nvm unload unsets env vars too 2020-02-07 09:16:55 -10:00
Jordan Harband
0899839b95
[Tests] pin david to v11
v11.1.0 and v12 no longer work on node 0.10; v11.1.1 should.

See https://github.com/alanshaw/david/issues/159
2019-12-09 08:51:46 -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
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
ee9e56582e
[Tests] jspm v2 beta started breaking tests; pin to < v2 2019-05-04 13:34:16 -07: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
Christopher Sahnwaldt
a1abfd1fe4
[Tests] use rimraf over rmdir in teardowns
- fix test 'Running "nvm ls" should display all installed versions.': only expect versions created by this test, but no versions created by other tests
2019-02-27 10:50:59 +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
9daf26f0a0
[Tests] nvm_command_info: make error output more helpful 2019-02-25 13:17:10 -08:00
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
04fdb2331b
[Tests] nvm ls: ensure nvm alias is called 2019-02-23 22:22:18 -08:00
Jordan Harband
2a5d2c06ff
[Tests] add more checks to make_fake_* helpers 2019-02-23 15:24:02 -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
48196d2436
[Tests] fix fake node versions 2019-02-23 14:47:49 -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
7e715d5c73
[Tests] Improve syntax in "test/installation_iojs/nvm install v1 works" 2019-01-23 03:10:03 +08:00
Jordan Harband
c1150c41ab
[Tests] avoid using shopt in zsh 2018-11-26 11:18:11 -08:00
Erik Lilja
8542df4ac5
[New] add support for $XDG_CONFIG_HOME 2018-08-14 21:45:40 +02:00
Jordan Harband
f218a85454
[Tests] eslint 5.5+ seems to not install on node 0.10 2018-09-09 14:56:17 -07:00
Jordan Harband
e7a37f336d
[Tests] fix failing tests on master due to npm registry SSL changes 2018-08-15 15:01:47 -07:00
Xandor Schiefer
90cfb5d771
[Fix] use: Prepend instead of changing if shadowed by system dirs (fixes #1652) 2018-06-08 15:23:02 +02:00
Joshua Li
0cdc184168
[Fix] Improve nvm_is_version_installed to check for a node executable instead of root dir 2018-05-31 15:26:30 -07:00
Joshua Li
a5f42d9cea
[Tests] update most mkdirs to use make_fake_{node,iojs} 2018-06-13 10:38:19 -07:00
Xandor Schiefer
eabd7ab13d
Respect previously nvm-loaded node version when sourcing 2016-11-14 19:18:24 +02:00
Spike Grobstein
9854928ba9
[New] install.sh: allow user to explicitly opt out of nvm adding the source string
this is done by checking if the user supplies `PROFILE=/dev/null` when running `install.sh`, the `nvm_detect_profile` function will not output any strings, causing `nvm_do_install` to skip adding `SOURCE_STR`.
2018-05-03 08:22:07 -07:00
Jordan Harband
c465a83518
[Tests] nvm ls-remote: add test for overly-large tab file 2018-05-23 23:48:04 -04:00
Jordan Harband
38b32c27f3
[Tests] update mock data 2018-05-23 23:48:50 -04:00
Peter Dave Hello
113d807e5a
[New] Support --no-progress for nvm install
Closes #1079.
2017-03-10 01:07:16 +08:00
Peter Dave Hello
685312d600
[Fix] Remove $NVM_DIR trailing slash automatically, fix #1708 2018-04-12 14:14:58 +08:00