Commit Graph

737 Commits (f60edbb6b4798fd009ad433246b48f789ac77867)

Author SHA1 Message Date
Jordan Harband 0d62626ac6
[refactor] `nvm exec`: refactor argument parsing. 2016-05-04 00:34:07 -07:00
Jordan Harband 6fb94e0dab
[fix] `nvm exec`: show “io.js” for io.js versions. 2016-05-04 00:33:56 -07:00
Jordan Harband 0dd2846215
[fix] `set -e`: ensure `nvm_version` returning 3, and `nvm_alias` returning 2, doesn’t terminate the process. 2016-05-04 01:03:14 -07:00
Jordan Harband 1c3f8da6c3
`nvm alias`: factor out alias creation to `nvm_make_alias` 2016-04-27 14:23:34 -07:00
Jordan Harband d705ec7ebf
[refactor] run through shellcheck 2016-04-30 00:33:28 -07:00
Jordan Harband 09f86b0e6e
[Refactor] Create and use `nvm_is_version_installed` 2016-04-27 17:11:16 -07:00
Jordan Harband fc68e615b2
`nvm alias`: colorize output to match `nvm ls` 2016-04-27 22:35:14 -07:00
Jordan Harband 677c69dda0
`nvm alias`: explicitly forbid user aliases in subdirs. 2016-04-26 23:07:10 -07:00
Jordan Harband 1eb4d482e0
`nvm alias`: If the alias target is empty, call into `nvm unalias` 2016-04-26 22:58:31 -07:00
Jordan Harband 4df2a7fca9
`nvm alias`: factor out alias printing logic to functions 2016-04-26 22:29:55 -07:00
Jordan Harband 7b1a4e5126
`nvm alias`: slightly speed up alias resolution. 2016-04-26 22:21:57 -07:00
Jordan Harband 755c39209e
[Refactor] make `check_file_permissions` be pure instead of relying on a closure.
Also, make it return early, to be a bit more efficient.

(from #847)
2016-04-18 19:23:51 -07:00
Luke Childs 3a2d35f167 Check permissions in shell rather than using find -exec 2016-04-19 01:40:16 +01:00
Luke Childs 005e29a223 Check dir permissions before attempting to nvm uninstall 2016-04-18 21:16:37 +01:00
Jordan Harband d3e334d86d [Fix] `read` exits 1 when `.nvmrc` lacks a trailing newline - avoid that.
Per https://github.com/creationix/nvm/issues/993#issuecomment-205399603
2016-04-04 22:08:36 -07:00
Jordan Harband 273ebedc55 [Fix] avoid an unbound variable when `nounset` bash option is set.
Per https://github.com/creationix/nvm/issues/868#issuecomment-198232952
2016-03-18 00:28:30 -07:00
Robson Peixoto 8fb4ee0789 Unset unnecessary environment variables 2016-03-11 14:53:36 -03:00
Jordan Harband 2176894a5b v0.31.0 2016-02-15 09:18:15 -08:00
Jonas Dohse 7135873f80 Do not modify parameters of sourcing script in zsh
When sourcing a script without parameters in zsh the sourced scripts
gets the same parameters as the sourcing file and is able to modify
these parameters. Prevent nvm from removing all parameters of sourcing
script by processing a copy of the parameters in a function.
2016-02-15 17:49:46 +01:00
Jordan Harband 44541b416f [New] After installing, ensure that the default is set. 2016-02-04 00:26:33 -08:00
Jordan Harband 731c2f3f70 Add `nvm_get_minor_version` 2016-02-04 11:16:09 -08:00
Jordan Harband de64a2d95f [Fix] `nvm_format_version` should only return 3 version groups 2016-02-06 22:34:49 -08:00
Brandon Wood f73bfb6578 Updated warning message when sha256sum utility not found
Relates to @ljharb's comment on the warning message not including all of the
utilties searched for.

https://github.com/creationix/nvm/pull/981#discussion_r50638351
2016-01-24 11:53:19 -06:00
Brandon Wood f1bca106a8 Added (optional) support for sha256 checksum utils
This commit adds (optional) support for additional sha256 checksum utilities
for newer versions of node.js and io.js that use sha256 checksums rather than
sha1.

If nothing is found to do a sha256 checksum on the client machine, a warning is
printed and things continue on as normal.

Following comments from @ljharb on incorporating some of @DomT4's PR
creationix/nvm#664, and making this checksum optional.  If I could I would
gladly include this as an addon to the now closed PR creationix/nvm#664. I am
choosing not to file it onto that PR because it's closed and (currently)
significantly behind the master branch.

@DomT4 did the hard work of actually finding all the different ways in which
one could verify a sha256 checksum, I've just included those here in an effort
to move forward with sha256 checksum support.
2016-01-24 10:31:26 -06:00
Brandon Wood 560c8c9500 Added support for sha256 checksums 2016-01-23 21:25:03 -06:00
Jordan Harband 21c3727955 v0.30.2 2016-01-21 00:23:01 -08:00
Jordan Harband 4fcf37fa29 [New] support `--no-use` on sourcing, in supported shells.
Fixes #972.
2016-01-20 12:50:45 -08:00
Nick Hwang e76fe61d95 Add missing space before closing bracket 2016-01-19 13:03:11 -05:00
Jordan Harband 00a8b36b78 [Fix] handle unbound shell variables.
Fixes #868.
2016-01-17 15:12:02 -08:00
Jordan Harband 6094dac1c1 [Fix] `nvm debug` was printing a red herring error message in non-zsh. 2015-12-30 09:45:13 -08:00
Jordan Harband 0aa3118de3 v0.30.1 2015-12-28 12:46:41 -08:00
Jordan Harband 2541baaf7d [Refactor] Create `nvm_get_make_jobs` to abstract out “-j” logic. 2015-12-28 12:20:14 -08:00
Jordan Harband dc8b63cb25 [Fix] `nvm install -s`: fix syntax errors. 2015-12-28 12:19:50 -08:00
Jordan Harband 8ec056f768 v0.30.0 2015-12-27 23:19:14 -08:00
Jordan Harband f279837d5c [Refactor] fix some bugs in `nvm_is_natural_num`, add unit tests. 2015-12-27 13:15:53 -08:00
Jordan Harband 31457fec3f [Refactor] `nvm install`: make `-j` and `-s` order-independent. 2015-12-27 12:52:01 -08:00
Peter Dave Hello e78dc5110e fix CPU_THREADS/CPU_THREAD_VALID/MAKE_JOBS prefix 2015-12-28 01:37:57 +08:00
Peter Dave Hello 6320719dd8 Support parameter -j to set jobs for make 2015-12-28 01:37:57 +08:00
Peter Dave Hello a8e6fee001 Enable multiple jobs for when build from source 2015-12-28 01:37:57 +08:00
Kilian Ciuffolo 6638ac3318 [refactor] improved bootstrap time
Fixes #860, closes #927.
2015-12-06 23:52:40 -08:00
Jordan Harband 04c5e3540e `nvm unalias`: Provide a restore command when unaliasing.
Fixes #916.
2015-12-13 21:34:28 -08:00
Peter Dave Hello 2a174d03d8 Update nvm.sh
Add prompt when there is no binary for node version greater than v1.0.0

Currently, on FreeBSD, if we try `nvm install 4.2`, we will only get:
> Installing node v1.0 and greater from source is not currently supported

In fact I had no idea what's wrong because I didn't use `-s` parameter for it,
and then I found that there are two reasons:
1. There was no pre-built nodejs binary from official for FreeBSD, which means we need to build from source.
2. nvm doesn't support build for v1.0 and greater version from source yet.

So I think there should be a prompt message to tell the user about the reason why nvm will go to build from source,
no matter it will succeed or fail.
2015-12-05 15:00:00 +08:00
Jordan Harband c742ab7e66 Fix `npm` version output for `nvm run` and `nvm exec` 2015-11-10 23:31:16 -08:00
Manuel Rüger 1adcabf5e8 Replace backticks with $() command substitution 2015-10-28 20:53:15 +01:00
Jordan Harband a43ff7c9d9 Ensure that `npm` doesn't print out excess data, regardless of the user's log level.
Fixes #881.
2015-10-23 00:12:14 -07:00
Jordan Harband 114f27a075 Use `nvm_ls_remote_index_tab` for listing nodejs.org versions.
Enabled by https://github.com/nodejs/build/issues/218, unblocks #870.
2015-10-17 10:34:42 -07:00
Jordan Harband 690543d6ad Rename nvm_ls_remote_iojs_org → nvm_ls_remote_index_tab and make it generic. 2015-10-17 10:19:39 -07:00
Jordan Harband 0b9526e3b4 Don't check `$1` unless `$#` is >= 1.
Fixes #873. Partially fixes #868.
2015-10-14 23:02:00 -07:00
Jordan Harband 016e7dfdab [nvm run / nvm exec]: Silence "find nvmrc" output when `--silent` is provided.
Per https://github.com/creationix/nvm/issues/846#issuecomment-147588453
2015-10-13 21:58:35 -07:00
Jordan Harband 2a0316f80d [shellcheck] Remove useless `echo` 2015-10-13 01:26:43 -07:00
Jordan Harband e7e28f436e [shellcheck] double-quote vars in more places 2015-10-12 16:07:29 -07:00
Jordan Harband 84aad508f7 Check `$#` before trying to check `$1`. Avoids failure due to `nounset` bash option.
Partially fixes #868.
2015-10-12 16:57:45 -07:00
Jordan Harband 8f3ee23390 [shellcheck] Correct redirection order: we want both stdout and stderr sent to /dev/null here. 2015-10-12 16:48:12 -07:00
Jordan Harband 032fab7172 `local`s need to be declared and assigned separately, for `ksh`. 2015-10-12 16:30:59 -07:00
Jordan Harband 46833efd79 [shellcheck] Remove useless `echo` 2015-10-12 16:10:43 -07:00
Jordan Harband 9407f850f1 [shellcheck] read without -r will mangle backslashes.
http://pubs.opengroup.org/onlinepubs/009695399/utilities/read.html / https://github.com/koalaman/shellcheck/wiki/SC2162
2015-10-12 16:05:55 -07:00
Jordan Harband bf284203cb [shellcheck] Declare and assign separately to avoid masking return values
https://github.com/koalaman/shellcheck/wiki/SC2155
2015-10-12 16:02:35 -07:00
Jordan Harband c957989fa9 Add `nvm --version` and `$HOME` to `nvm debug` 2015-10-10 14:27:00 -07:00
Jordan Harband e1c84bae37 v0.29.0 2015-10-09 01:52:19 -07:00
Jordan Harband a928a8f181 nvm exec: don't fall back to `.nvmrc` when the provided version is not installed. 2015-10-08 17:37:53 -07:00
Jordan Harband 937c29c95a nvm run: use common code path for "ensure version installed"
Better than cb033adc6f
2015-10-08 16:48:17 -07:00
Jordan Harband a0e94e16de Make sure `nvm debug` doesn't use an overridden `sed` 2015-10-08 00:19:53 -07:00
Johan Bergström b8e4917646 Use `xz` tarballs if available
Saves us ~25% bandwidth while downloading the payload. This only applies
to hosts that has the `xz` binary and attempts to use iojs 2.3.2 or newer
(this includes nodejs 4.0+ as well). Older targets are unaffected.
2015-10-08 16:45:26 +11:00
Jordan Harband cb033adc6f nvm run: use common code path for "ensure version installed" 2015-10-07 18:08:48 -07:00
Jordan Harband 20f4acdd25 [installing] echo the URL that the tarball is being downloaded from. 2015-10-07 20:28:18 -07:00
Jordan Harband 41153e207d Ensure `nvm use` output shows up *after* `prefix` check passes. 2015-10-07 14:40:31 -07:00
Jordan Harband 6b3c34313c Fix `nvm_ls` when `$NVM_DIR` has spaces in it.
Mostly fixes #861.
2015-10-07 13:57:29 -07:00
Jordan Harband 8541e2e1ee Properly quote some possible variables with spaces. 2015-10-07 13:57:13 -07:00
Jordan Harband 06a21284ed Protect against `cat` clobbering. Fixes #858. 2015-10-04 14:28:38 -07:00
Jordan Harband ebdcdc4363 v0.28.0 2015-10-02 01:50:44 -07:00
Jordan Harband b805de80cb Add `PREFIX` and `NPM_CONFIG_PREFIX` env vars to `nvm debug` 2015-10-01 10:05:13 -07:00
Jordan Harband 44f416d58f Create and use `nvm_sanitize_path` for `nvm debug` 2015-10-01 09:41:34 -07:00
Jordan Harband 3d1ccfec70 Sort `nvm ls` results by semver version, so the order goes: "unmerged node", "iojs", "merged node". 2015-09-30 22:05:18 -07:00
Julien Gilli 2d692d9d78 Fix support for installing node on SmartOS
uname on SmartOS cannot be used to guess if 32 and/or 64 bits binaries
are supported, and its output is different than other uname commands on
other operating systems.

This change uses pkg_info to determine what types of binaries pkgsrc
would install. If pkg_info fails to run or is not present, this change
falls back to using isainfo -n, which determines what the kernel
supports.

It allows users to install node binaries on Solaris derivatives. io.js
can also be installed on Solaris derivatives starting with version
v3.3.1.
2015-09-30 22:10:29 -07:00
Jordan Harband 8aebf86329 v0.27.1 2015-09-27 06:40:29 -07:00
Jordan Harband 838d72688f v0.27.0 2015-09-26 10:13:10 -07:00
Jordan Harband 8ee6f30352 Add support for `$NPM_CONFIG_PREFIX` to `nvm_die_on_prefix`.
Fixes #606.
2015-09-23 06:25:55 -07:00
Jordan Harband 1458de7293 Ensure that if `npm config get prefix` is set to something outside `nvm`, that `nvm use` refuses to work.
Fixes #606.
2015-09-21 04:47:37 -07:00
Jordan Harband a1def71062 Add `nvm_die_on_prefix` 2015-09-21 04:47:30 -07:00
Jordan Harband eb81fba8f7 Add support for `--silent` to `nvm run` and `nvm exec`.
Fixes #842.
2015-09-23 05:16:45 -07:00
Jordan Harband 7496a24bd6 Print the `npm` version when using `nvm exec` or `nvm run`. 2015-09-23 05:02:41 -07:00
Jordan Harband c64a0343af [Docs] Add `nvm help` documentation for `nvm exec` 2015-09-23 04:51:55 -07:00
Jordan Harband 643365a948 Allow `--silent` option to `nvm use` to be in any position. 2015-09-23 04:51:55 -07:00
Jordan Harband 9e389eb9fe Attempt to fix #829. 2015-09-19 13:37:08 +09:00
Jordan Harband e3528b0d9e Fix `nvm_ensure_version_installed iojs` to not print an empty string for the version. 2015-09-11 10:42:47 +09:00
Jordan Harband 014a44e154 Minor refactoring to "install from source" logic tree. 2015-09-10 22:37:50 +09:00
Jordan Harband c9215a127f When no `io.js` versions are installed, show `N/A`, not `io.js-`, as the resolved default alias.
Fixes #822.
2015-09-09 22:37:32 +09:00
Jordan Harband c92effc6da Don't double-print *default* alias resolutions either. 2015-09-09 22:38:54 +09:00
Jordan Harband 1e2a7a8de4 Sort `nvm ls-remote` output so the order is: "pre-merged", "iojs", "post-merged". 2015-09-09 22:23:22 +09:00
Jordan Harband d4caf9fb67 Fix some logic errors in the new "merged node" code path. 2015-09-09 09:46:39 +09:00
Jordan Harband 0ef20199dc Use `NVM_VERSION` instead of `VERSION` to be a bit less intrusive.
Fixes #820.
2015-09-07 21:43:21 +09:00
Jordan Harband 0d898b0aa4 When `node` version is not io.js and is v1.0 or later, on `nvm install`, run `nvm_install_merged_node_binary` 2015-08-28 00:51:19 -07:00
Jordan Harband 0181821b51 Add `nvm_install_merged_node_binary` 2015-08-28 00:51:19 -07:00
Jordan Harband f34fef96d8 Add `nvm_is_merged_node_version` 2015-08-28 00:51:18 -07:00
Jordan Harband 26ee4aafc0 v0.26.1 2015-08-22 20:54:31 -07:00
Jordan Harband 8746d63041 Ensure after node v4.0 is released, `stable` will simply refer to the latest node. 2015-08-22 09:45:49 -07:00
Jordan Harband b7e2d7d24d Oops, the string passed to `awk` isn't the same as a shell command.
Fixes #808.
2015-08-16 18:08:50 -07:00
Jordan Harband 58ffa407c2 Prefixing more commands with `command` to bypass aliases.
Related to #805 and #804.
2015-08-15 23:56:32 -07:00
Jordan Harband 49abc9ce02 v0.26.0 2015-08-13 17:10:08 -07:00
Jordan Harband 17c68075e8 Use single quotes instead of double quotes for help output. 2015-08-05 23:53:29 -07:00
Jordan Harband 3fcff872af Add explanatory note for `<version>`
Per https://github.com/creationix/nvm/pull/797#discussion_r36379740
2015-08-05 23:53:17 -07:00
Sequoia McDowell fe1ed37520 Add usage string for --reinstall-packages-from 2015-08-05 22:26:17 -04:00
Jordan Harband 071323847c Add `nvm version-remote`; document `nvm version` 2015-08-04 14:03:57 -07:00
Jordan Harband d7035c5e61 Redirect stderr output from `npm ls -g` to /dev/null.
Fixes #756.
2015-08-03 16:41:47 -07:00
Jordan Harband 759f86f946 Tweaking local variable name to avoid pollution under `ksh`. 2015-07-18 09:31:07 -07:00
Alan Quach 98e40a8da5 Expanding to full if statements because the shorthand results in non-zero exit codes 2015-07-09 18:40:52 +10:00
Alan Quach 2da44f90d2 Silencing error outputs as well (for consistency and following after things like curl) 2015-07-09 18:00:13 +10:00
Alan Quach 88a50780fc Removing global NVM_SILENT and adding/using '--silent' option to nvm use instead 2015-07-09 17:44:09 +10:00
Alan Quach 9419794b19 Guarding npm version printing with NVM_SILENT flag check; when sourcing nvm.sh, a considerable amount of time is spent running npm --version only for that output to be black-holed to /dev/null 2015-07-09 09:56:26 +10:00
Jordan Harband f2d31b0458 Some refactoring to clear up the path to `io.js` release candidate support.
(unblocks #779)
2015-07-04 17:05:24 -07:00
Jordan Harband 0b41352210 Factor out global installs/links into `nvm_npm_global_modules` function. 2015-07-02 23:47:29 -07:00
Jordan Harband be5e8de0c8 Fix `nvm reinstall-packages` for linked packages, broken in 7bce6c6c68 2015-07-02 23:12:06 -07:00
Jordan Harband 3ef937a64e Make `nvm_ensure_version_installed` slightly more efficient. 2015-06-28 18:15:15 -07:00
Jordan Harband a21b2e6962 Refactor this `nvm use` `case` statement out into an `nvm_match_version` function. 2015-06-28 18:08:38 -07:00
Jordan Harband cc090f4476 Speed up `nvm_print_npm_version`. 2015-06-28 16:23:12 -07:00
Jordan Harband c31b072145 Fix `nvm debug` output in `zsh`. 2015-06-28 17:19:15 -07:00
Jordan Harband 7bce6c6c68 `nvm reinstall-packages` should install the same version it had before. 2015-06-29 00:04:59 -07:00
William Boman bc3840b6f3 nvm.sh: s/copying/reinstalling/ 2015-07-02 21:21:51 +02:00
lukechilds 67f2ee82ca POSIX compatibility 2015-06-13 10:18:58 +01:00
lukechilds 1f13f15620 Add --without-snapshot configure flag to ARM devices 2015-06-12 23:36:02 +01:00
Jordan Harband 3cfa1ed4e1 Remove `$NVM_IOJS_ORG_VERSION_LISTING` env var. 2015-06-06 22:39:03 -07:00
Jordan Harband d78722b284 v0.25.4 2015-05-29 11:11:40 -07:00
Jordan Harband a539cba11e v0.25.3 2015-05-22 15:18:46 -07:00
Jordan Harband 472ba5fc46 Make sure sourcing `nvm.sh` on shells that don't support source options doesn't exit nonzero.
Fixes #721
2015-05-22 00:15:43 -07:00
Jordan Harband 96c96ec714 v0.25.2 2015-05-19 14:05:43 -07:00
Jordan Harband 5e805905ca Add undocumented `nvm debug` to print out helpful debugging info. 2015-05-14 14:56:26 -07:00
Jordan Harband 2dec01da9c nvm reinstall-packages: On systems where `npm ls -g --depth=0` does not include `npm` for some reason, make sure to filter out `(empty)`. 2015-05-08 14:24:51 -07:00
Jordan Harband 63672641a5 Add wrapping curly braces to ensure that the entire scripts are downloaded.
If the closing curly brace isn't present, the script will error out.
2015-05-11 01:46:18 -07:00
Jordan Harband 94bba31de3 Make sure that `nvm reinstall-packages system` has the right std output. 2015-05-08 14:15:42 -07:00
Jordan Harband ec33e8b720 v0.25.1 2015-05-03 15:31:54 -07:00
Jordan Harband a4f89c6223 Make sure to ignore `~/.curlrc` if it exists. 2015-05-01 02:00:49 -07:00
Jordan Harband 517817f1a3 Actually try to install from source when the error message says "binary failed, trying source". 2015-04-27 14:02:45 -07:00
Jordan Harband a6f5eff0f3 Use `uname -m` instead of `uname -a`.
Fixes #744.
2015-04-28 22:56:43 -07:00
Jordan Harband 0aac462b15 Improve the error message when the binary tarball URL 404s.
Fixes #743
2015-04-27 13:48:22 -07:00
Jordan Harband eb5cecc970 v0.25.0 2015-04-26 12:58:05 -07:00
Scott Jasperse e1009149c9 adding architecture detection for Raspberry Pi 2 2015-04-25 19:10:02 -04:00
Jordan Harband cbf0f12aac Create `nvm_print_npm_version` and use that when printing the `npm` version. 2015-04-12 10:59:17 -07:00
Andrew Crites e4149c380b Only print npm version if it exists 2015-04-09 02:31:57 -04:00
Andrew Crites caa69bc500 npm version: shell compatibility, test update
* Update test string that checks printed node version to pass with additional npm version display
* Remove echo -n for compatibility with shells that do not support it
2015-04-09 02:12:35 -04:00
Andrew Crites e01bcb740b Include npm version when displaying results of switch.
When running nvm use, successful changing of versions lists the new node version.  The npm version may also be switched, but this is not listed.

This commit updates nvm to display the npm version that was switched to alongside the node version
2015-04-09 01:20:51 -04:00
Jo Liss 0dc177bf9c Consolidate and avoid sed/cut calls, clean up pattern matches
Some patterns contained a no-op `*`; the `*` would match the empty string
because # or % replacement (unlike ## or %%) tries to find the shortest match.
2015-04-06 20:30:38 +00:00
Jordan Harband c34502ebc2 `nvm_num_version_groups` should report 0 when given just a v or a . 2015-04-06 11:10:43 -07:00
Jordan Harband 3d764e6833 Add `nvm_ensure_default_set` 2015-04-05 16:49:29 -07:00
Jordan Harband a26ef4f1be Consolidate `reinstall-packages-from` logic to one place `nvm install` 2015-04-05 16:09:47 -07:00
Jordan Harband d68f667464 When no arguments are passed to `nvm run X`, use `nvm exec` to open a REPL.
Fixes #625. Tests will be in #717.
2015-04-05 15:13:35 -07:00
Jordan Harband c966204cd6 v0.24.1 2015-04-05 12:55:17 -07:00
Jordan Harband d72b35b7b8 Remove external calls to `sed` using parameter filtering.
POSIX-compliant per http://stackoverflow.com/a/25536935/632724

Relates to #709
2015-04-05 02:35:05 -07:00
Jordan Harband d50a0f46e9 Avoid some external calls by using case statements.
Relates to #709.
2015-04-04 23:59:12 -07:00
Jordan Harband a1a8e5a51b Clean up logic a bit. 2015-04-04 14:53:38 -07:00
Jordan Harband 108f630732 Cache the `nvm_node_prefix` call. 2015-04-04 14:31:56 -07:00