Commit Graph

1031 Commits (b356fab4b42605fb7e1b3f83af69b5f9ad4a77cb)

Author SHA1 Message Date
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 1f970ccb7a
[Fix] `nvm_normalize_lts`: switch from expr to case
avoids `expr: warning: ^lts/-[1-9][0-9]*: using ^ as the first character of a basic regular expression is not portable; it is ignored`
2023-11-01 12:24:29 -07: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 8241287349
[New] aliases: skip leading blank lines in alias file 2023-10-23 14:06:19 -07:00
Jordan Harband 6aeab3349c
[Robustness] `nvm_list_aliases`: avoid overwritten sort 2023-10-23 14:05:37 -07:00
Jordan Harband 1eaaada499
[Perf] `nvm_check_file_permissions`: do not traverse into symlinks 2023-08-25 22:49:41 -07:00
Jordan Harband c92adb3c47
v0.39.5 2023-08-21 21:10:10 -07: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 324b81a722
[Fix] allow checksums to pass with a leading backslash
See https://unix.stackexchange.com/a/555061/137489
2023-08-06 14:51:48 +12:00
Jordan Harband 3afdce0a2c
[Fix] `nvm install-latest-npm`: ensure npm 10 does not install on unsupported nodes
See https://github.com/npm/cli/pull/6674
2023-07-26 13:21:03 -07:00
Jordan Harband 8fbf8ab694
v0.39.4 2023-07-24 18:29:54 -07:00
Deniz 5410ae57ba
[Fix] fix node download link for armv8l
Fixes #3035
2023-04-29 16:41:31 -07:00
Jordan Harband c08b38a2a4
[Fix] `nvm_print_npm_version`: if `npm` exists but its node crashes, do not print the npm version 2023-04-28 10:57:57 -07:00
Jordan Harband a07cd41af1
[Fix] `nvm_ls_current`: when `node` is present but crashes immediately, echo "none" 2023-04-28 10:55:03 -07:00
Leo Zlotnikov 0d9b5c2a00
[Fix] fix directory traversal when workdir path is not readable 2023-04-08 17:24:41 +01:00
Dennis dde04f9392
[Fix] recognize 32Bit docker container and use x86 arch 2023-03-22 14:52:40 -07:00
William Baker ffcb5213e2
[Perf] Improve performance of listing aliases
Fixes #3054
2023-03-10 00:53:29 -05:00
Nicolas signed-log FORMICHELLA edacf8275e
[Fix] Remove unneeded call to `ls` in `nvm_arch`
Remove the call to `ls` that was used to determine the symlink
destination

Reasoning :

* `od` resolves symlink itself due to the use of `fopen`
* Prevent the behaviour of `od` which will hang if the filename is
  empty (i.e. `/sbin/init` missing) as it will be waiting for `stdin`
  compared to quitting with error if the file just doesn't exist

Fixes #3006
2023-01-22 11:48:59 +01:00
Jordan Harband 552db40622
v0.39.3 2022-12-23 12:57:56 -08:00
Jordan Harband ac357c59ef
[Fix] `nvm install-latest-npm`: npm v6.14.18 can not be installed from npm < v4.4.4 2022-12-21 14:28:15 -08:00
Jordan Harband abe5e30a9d
[shellcheck] remove duplicate function 2022-12-22 13:00:12 -08:00
Jordan Harband 1f4bb91ae6
[Fix] ensure this variable is bound
Fixes #2926
2022-10-26 10:12:06 -07:00
Jordan Harband 924d77cc90
[Fix] `debug`: correct mistaken `-V` to `--version` from #2922 2022-10-24 10:51:20 -07:00
ryenus 095a4ca655
[Fix] `debug`: `awk`: not an option: `--version`
On Debian, the default awk/mawk doesn't support the '--version' option;
instead there's mawk-specific '-W version'.
2022-10-21 16:48:00 +08:00
ryenus 9721791563
[Fix] grep: warning: stray \ before /
No need to escape the `/` char in a grep pattern.
This is to fix the below error when using newer grep with `nvm_command_info`

> $ nvm_command_info curl
> grep: warning: stray \ before /
> /usr/bin/curl

This happens with at least GNU grep 3.8 version.
2022-10-20 10:49:43 +08:00
ryenus 89d6cdd6cf
[Fix] improve backward compatibility for non-gnu awk
Adding function alen(arr) since length(arr) is GNU extension.
Fixes #2916
2022-10-18 11:25:12 +08:00
epoweripione fe6268c021
[Fix] `nvm install` error `unknown condition: -ne`
Fixes #2914

Co-authored-by: epoweripione <siyuwuxin@gmail.com>
Co-authored-by: Jordan Harband <ljharb@gmail.com>
2022-10-15 20:25:52 +08:00
Jordan Harband df01d81128
[Refactor] add `nvm_wrap_with_color_code`; allow no color code 2022-10-13 20:16:42 -07:00
Jordan Harband 0ccd099bff
v0.39.2 2022-10-13 16:25:25 -07:00
Jordan Harband f062cca179
[Refactor] nvm install/`nvm_install_default_packages`: move "get" logic inside helper 2022-10-13 15:03:36 -07:00
Jordan Harband 71a73b17cf
[Fix] `--help`: proper default `NVM_COLORS` info 2022-10-13 13:34:43 -07:00
Jordan Harband 0ae8409f4f
[Fix] `nvm install-latest-npm`: ensure npm 9 does not install on unsupported nodes 2022-09-08 14:59:25 -07:00
ryenus 5e9791c4f8
[perf] `nvm_print_versions`: re-implement using awk
reducing `nvm ls-remote` from almost 20s to below 2s.

Signed-off-by: ryenus <ryenus@gmail.com>
2022-06-05 13:27:03 +08:00
Josh Kelley c6269e0ac2
[Fix] Don't override Mac M1 architecture for node ^14.17
Fixes #2743

Co-authored-by: Josh Kelley <joshkel@gmail.com>
Co-authored-by: Raz Luvaton <16746759+rluvaton@users.noreply.github.com>
Co-authored-by: Jordan Harband <ljharb@gmail.com>
2022-03-30 10:53:01 -04:00
Jordan Harband a82edf40ba
[Robustness] avoid a clobbered `ls`
Fixes #2824
2022-06-02 12:25:55 -07:00
deepakchethan 9e884b8d7b
[Fix] `nvm install`: show proper version in `.nvmrc` install instructions 2022-03-22 18:58:18 +05:30
Jordan Harband c2f740ab38
[patch] HTTP -> HTTPS 2022-01-18 12:49:57 -08:00
Luke Arms 1875fe8b40
[Fix] avoid OpenBSD `nvm install` error when /sbin/init doesn't exist
`nvm install` fails with "Binary download failed, trying source" when
- running on Bash;
- errtrace (`set -E`) is enabled;
- an ERR trap uses `exit` to return a non-zero status; and
- /sbin/init doesn't exist.

Resolved by moving `ls -dl /sbin/init` to the following `if` statement.
In this context, returning non-zero isn't an error and the ERR trap
isn't executed.
2021-12-26 15:31:53 +11:00
Luke Arms 81f0f3ec19
[Fix] `set -E`: Add test for `node install` on Bash with an ERR trap and `set -E` 2021-12-27 16:02:25 +11:00
lsfxz fb4538b360
[Fix] add missing `local` (handle nonexisting /sbin/init a bit more cleanly) 2021-11-17 16:59:53 +01:00
Bob Bregant II 79ad72d116
[Fix] Update `nvm_extract_tarball` to support OpenBSD
Fixes #2660.
2021-12-19 02:58:18 +00:00
Bob Bregant II ccd442d833
[Refactor] add `nvm_extract_tarball` to consolidate extraction logic 2021-12-19 02:58:18 +00:00
Jordan Harband 9600617c52
v0.39.1 2021-12-17 14:55:52 -08:00
Jordan Harband aa57406ede
[Fix] ensure `unload` removes `nvm_normalize_lts` 2021-12-17 13:55:14 -08:00
Jordan Harband c4c7690dec
[Fix] `ls-remote`/`install`: support `lts/-X` patterns in installs
Fixes #2692
2021-12-16 23:01:05 -08:00
Jordan Harband aed1d732d7
[Fix] `ls-remote`/`install`: properly handle `lts/x` patterns 2021-12-16 22:58:06 -08:00
Jordan Harband 0b4cd8df6c
[Refactor] create `nvm_normalize_lts` helper 2021-12-16 22:55:02 -08:00
Jordan Harband 430860a8be
[Fix] `nvm alias`/`nvm_list_aliases`: support `lts/` aliases
See #2692
2021-12-16 15:54:38 -08:00
Ankit Kumar 328dd5004e
[Fix] `nvm_get_download_slug`: better architecture selection for M1 Macs
If the node version is below 16.0.0 then nvm will select x86_64 architecture, else arm64 architecture.
2021-11-21 15:59:39 +05:30