1125 Commits
Author SHA1 Message Date
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 HenshawandJordan Harband 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
DenizandJordan Harband 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 ZlotnikovandJordan Harband 0d9b5c2a00 [Fix] fix directory traversal when workdir path is not readable 2023-04-08 17:24:41 +01:00
DennisandJordan Harband dde04f9392 [Fix] recognize 32Bit docker container and use x86 arch 2023-03-22 14:52:40 -07:00
William BakerandJordan Harband ffcb5213e2 [Perf] Improve performance of listing aliases
Fixes #3054
2023-03-10 00:53:29 -05:00
Nicolas signed-log FORMICHELLAandJordan Harband 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
ryenusandJordan Harband 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
ryenusandGitHub 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
ryenusandJordan Harband 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
epoweripioneandJordan Harband 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
ryenusandJordan Harband 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
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
deepakchethanandJordan Harband 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 ArmsandJordan Harband 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 ArmsandJordan Harband 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
lsfxzandJordan Harband fb4538b360 [Fix] add missing local (handle nonexisting /sbin/init a bit more cleanly) 2021-11-17 16:59:53 +01:00
Bob Bregant IIandJordan Harband 79ad72d116 [Fix] Update nvm_extract_tarball to support OpenBSD
Fixes #2660.
2021-12-19 02:58:18 +00:00
Bob Bregant IIandJordan Harband 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 KumarandJordan Harband 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
Jordan Harband 2f40eeef2e [shellcheck] apply v0.8.0 updates 2021-11-19 08:53:43 -08:00
Wu JiangandJordan Harband 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 WintandJordan Harband 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 UdagawaandJordan Harband 53f9ba8336 [Refactor] Use awk for path stripping
This works with paths which contains regex meta characters.
2016-12-23 01:03:41 +09:00