Commit Graph

428 Commits (d91087c333d57c1cf37e9875ae235a1640a44d98)

Author SHA1 Message Date
mail6543210 9352f6913a Add symbolic link for printf in case of command-not-found 2017-11-22 02:01:38 +08:00
Phileas Lebada be171bba33 Add unset-variable as exit error 2017-11-15 17:19:05 +01:00
Xandor Schiefer 334897ae39
Preserve PATH locations order when changing versions 2016-11-14 19:19:39 +02:00
Jordan Harband c0b56d03a1
[Fix] `install-latest-npm`: `io.js` `v1.0.x` has weird behavior with npm v4.6.x.
- comment out node 0.6 test due to travis-ci breakage
2017-09-07 15:57:09 -07:00
Jordan Harband cbdd41eee2
[New] `nvm install`: add `--latest-npm` option to automatically try to upgrade to the latest working version of `npm`.
- also add `nvm install-latest-npm` top-level command
2017-06-11 14:15:04 -07:00
J Huang 7965796569
[Fix] enable curl compression only on curl >=7.21.0
curl < 7.21.0 will output redirection reponse body to the output when compressed, which will cause tarball is prepended with redirection reponse body and leads to checksum mismatch.

 - add `nvm_curl_use_compression` and `nvm_curl_version`
2017-06-10 15:25:26 +08:00
Weston Ganger 7f3145bc98
[New] add support for `$NVM_DIR/default-packages` file 2017-03-28 09:37:14 -07:00
Jordan Harband dc5dfe3bc1
[Fix] set IFS to default for all nvm commands.
Fixes #1227. Fixes #1244. Fixes #1514. Fixes #1518.
2017-04-28 00:41:55 -07:00
Peter Dave Hello a66a9caa1c
[Tests] Use node v0.10.7 for thread para test as other install from src tests 2017-04-09 13:08:04 +08:00
Peter Dave Hello c6866eeb37
[Test] "nvm alias" lts test bug fix 2017-04-02 14:34:04 +08:00
Jordan Harband 4249b1c2bb
[Fix] `nvm_ensure_version_installed`: add `system` support.
Relates to #1238
2017-03-31 00:52:56 -07:00
Jordan Harband b9f9977cdd
[Fix] `nvm install -s`: npm detection
- add `nvm_use_if_needed`
 - add `nvm_install_npm_if_needed`
2017-03-27 15:00:50 -07:00
Peter Dave Hello 7b253c8c0a
[New] Supercharge `nvm debug` output
Try to get shell version, OS and its version, curl/wget/git version.
2017-03-23 14:48:00 +08:00
Peter Dave Hello 973dfc6d4a [New] Dynamically detect if curl supports `--compressed` 2017-03-23 16:51:20 +08:00
Peter Dave Hello 6a3b1dd2c3 [New] Enable curl auto compression/decompression
Enable `--compressed` parameter on curl to automatically enable
compression on request content by sending coressponding header, if the
server side supports compression format like deflate or gzip, curl will
also decompress the content automatically, so there is no additional
works need to done manually on client side, but just enjoy the benifits
of bandwidth and time saving!

Take https://nodejs.org/dist/index.tab as an example which is last
modified on Tue, 14 Mar 2017 22:41:05 GMT, the compressed transmission
only take 4829 bytes howevet the not compressed on taks 48000 bytes,
which is about 10 times larger!

This feature can be traced back to Sep 3 2002, in curl commit:
 - 64bbe9dfaf

So should be supported on various versions widely.
2017-03-23 16:51:20 +08:00
Peter Dave Hello fa3631fee3
[Refactor] Add `nvm_has_non_aliased` 2017-03-20 16:57:26 +08:00
Matthew McEachen 1e6b5ce039
[Fix] stop setting mirror env vars unnecessarily
Fixes #1429
2017-03-16 23:54:55 -07:00
Peter Dave Hello 9593616b8c [Fix] NVM_PROFILE bash/zsh detection in installation 2017-03-15 14:34:28 +08:00
Peter Dave Hello 182a18d911
[Fix] Github should be GitHub 2017-03-09 23:02:08 +08:00
Peter Dave Hello 8e6201b5b1
[Tests] Update test mocks 2017-03-10 18:02:47 +08:00
Jordan Harband 6fc0241c21
[Fix] `install.sh`: only un-interpolate $HOME for the profile source string.
Fixes #1384.
2017-02-12 00:32:49 -08:00
Jordan Harband affcc5087c [Fix] `set -e`: `nvm install lts/something`: call `nvm_ensure_default_set` with the proper value.
Fixes #1394.
2017-02-11 23:19:29 -08:00
Ryan Wheale 1b2305232f
[install script] Use `$HOME` variable in `NVM_DIR` 2017-01-12 10:55:56 -07:00
Jordan Harband 0f6997d90a [Tests] remove the unused and broken `$NVM_PATH`. 2016-12-16 11:23:23 -08:00
Jordan Harband 47c60dfc1d
[Tests] add test to ensure that `nvm unload` unloads all functions. 2016-11-28 12:50:35 -08:00
Peter Dave Hello 65acb403ce
Add `nvm_clang_version` to ensure clang version > 3.5 2016-11-14 12:28:41 +08:00
Peter Dave Hello 9c92b5a4ea
[New] `nvm install`: Print the version that is being installed 2016-11-06 20:43:47 +08:00
Peter Dave Hello f7763c8ba9
[Tests] die() in tests should quote "$@" for echo 2016-11-07 03:34:36 +08:00
Jordan Harband 24f8ae5c46
[New] support external install hook “$NVM_INSTALL_THIRD_PARTY_HOOK”.
Fixes #1207.
2016-11-03 23:42:55 -07:00
Qiangjun Ran cadbbced20
[Tests] Replace all dots with backslash dots 2016-11-03 23:44:59 -07:00
Jordan Harband 76fe1ab1c6
[Fix] ensure that `lts/*` points to boron/latest, not argon/earliest.
- update test mocks
 - fix tests for Boron release

Fixes #1268.
2016-10-18 11:33:07 -07:00
Jordan Harband f9e14b7d4d
[Fix] `nvm uninstall`: work around `nomatch` `zsh` option.
Fixes #1228.
2016-10-04 01:43:24 -07:00
Jordan Harband a29d0e49dc
[Tests] improve + update test mocks 2016-09-28 22:42:48 -07:00
Peter Dave Hello 702d52f23b update test mocks 2016-09-29 10:27:24 +08:00
Jordan Harband d12ccb130d
[Fix] `zsh`: when `warncreateglobal` is set, this line warns for some reason. Use `env` to suppress it.
Fixes #1236.
2016-09-18 13:39:50 -07:00
Jordan Harband acbdd9a3fa
[Fix] Fix trailing whitespace in `nvm ls-remote` 2016-09-18 12:26:06 -07:00
Jordan Harband f60edbb6b4
[Tests] update test mocks 2016-09-18 11:58:18 -07:00
Jordan Harband ecba036cbf
[Tests] show `type` output for debugging 2015-12-21 23:59:44 -08:00
Jordan Harband d5f1d4530f
[Tests] `chmod a-x` on io.js source tests, for now.
TODO: fix.
2016-08-21 22:52:54 -07:00
Jordan Harband adb6a187a9
[Tests] try v3.3 instead of v1 in hopes they will compile faster. 2016-09-02 23:43:47 -07:00
Jordan Harband 32a1b4124c
Use `watch` to keepalive stdout while installing. 2016-09-02 23:43:47 -07:00
Jordan Harband 88ce2103f5
Use `watch` to keepalive stdout while installing. 2016-09-02 23:43:46 -07:00
Jordan Harband 9b8eab3163
[New] Add `nvm install -s iojs` support. 2016-09-02 23:43:46 -07:00
Jordan Harband 57c2004ab2
[Breaking] adapt `nvm_install_node_binary` to `nvm_install_binary`, eg, io.js too.
- `nvm_get_checksum` now accepts 5 args (from 3): flavor (node/iojs), type (binary/source), version, slug, compression (xz/gz)
 - `nvm_install_binary` accepts 3 args (from 2): flavor (node/iojs), kind (std), version
 - remove `nvm_install_iojs_binary`
2016-09-02 23:43:46 -07:00
Jordan Harband 2214cb7ad7
[Breaking] cache previously downloaded artifacts for source installs
- `nvm uninstall` no longer removes source artifacts
2016-09-02 23:43:46 -07:00
Jordan Harband eba50de75e
Add `nvm_compare_checksum`, `nvm_compute_checksum`, and `nvm_get_checksum` 2016-09-02 23:43:45 -07:00
Jordan Harband 1ac7e236b1 [New] Add `lts/foo` support to remote commands.
- `nvm ls-remote`
 - `nvm version-remote`
 - `nvm install`
 - `nvm uninstall`

Document existing support:
 - `nvm use`
 - `nvm exec`
 - `nvm run`

Fixes #1208.
2016-08-23 10:58:00 -07:00
Jordan Harband 54cc3a383e
[Tests] set -ex options on more tests 2016-08-14 09:48:25 -07:00
Jordan Harband d3d768adcd
Add `nvm_get_mirror` 2016-08-10 23:09:54 -07:00
Jordan Harband 9c65197b22
Add `nvm_get_checksum_alg` 2016-08-09 22:24:09 -07:00
Julien Gilli a32b914bab Fix nvm on SmartOS setups using 64 bits pkgsrc repository
On SmartOS setups using 64 bits pkgsrc repositories, `nvm_get_arch`
would not handle pkg_info's output properly.

This would result in nvm not being to install any node binary when
running on SmartOS setups using a 64 bits pkgsrc repository.

This change fixes this problem, and fixes the tests suite on similar
setups.
2016-07-29 14:08:31 -07:00
Jordan Harband 876d117376
[Tests] add `nvm run --lts` tests. 2016-07-18 00:35:01 -07:00
Jordan Harband 58a82a1d31
[Tests] add `nvm exec --lts` tests. 2016-07-17 19:54:10 -07:00
Jordan Harband 42fedf6bc9
[Tests] add some basic `nvm use --lts` tests 2016-07-03 08:37:03 -07:00
Jordan Harband 4c010f442e
[Tests] add tests for auto-creation of LTS aliases on `nvm_ls_remote` 2016-07-02 21:21:16 -07:00
Jordan Harband f0668fd577
[Tests] `nvm alias --lts`: add tests 2016-06-26 15:11:37 -07:00
Jordan Harband 655830eb58
[Tests] `nvm install --lts`: add tests 2016-06-26 13:57:01 -07:00
Jordan Harband e6606458f7
[Tests] add `nvm version-remote` unit tests. 2016-06-26 13:01:12 -07:00
Jordan Harband d2744014df
[Tests] add some basic `nvm ls-remote` unit tests. 2016-06-25 17:00:19 -07:00
Jordan Harband 4699657e98
Add `--lts=argon` etc, so the LTS line can be targeted. 2016-04-25 00:55:35 -07:00
Jordan Harband 1d908d8256
Add `--lts` support to `nvm version-remote` 2016-04-24 16:26:32 -07:00
Jordan Harband ae07c3c345
Add support for `nvm ls-remote --lts` 2016-04-23 23:47:25 -07:00
Jordan Harband 865d2fe3d6
Include LTS version in `nvm_ls_remote` output. 2016-04-17 23:39:27 -07:00
Jordan Harband b2c5616d7a
[Tests] avoid accidental command execution in test failure message. 2016-07-17 19:54:26 -07:00
Jordan Harband ecbd7d4572 [Tests] use `-ex` option during tests when possible
Relates to #1130
2016-07-10 19:58:32 -07:00
Jordan Harband 186eb8838d
[Tests] make “nvm use iojs” test actually test that thing. 2016-07-07 15:38:34 -07:00
Jordan Harband 940f850f8d
[Tests] clean up some tests 2016-07-07 01:14:37 -07:00
Jordan Harband 78a008c3c7
[Fix] use Solaris-compatible tail options.
Fixes #1148.
2016-07-06 15:31:25 -07:00
Quildreen Motta 730b253174 Updates tests for the new output messages 2016-07-05 21:40:45 -03:00
Peter Dave Hello 9e09c30621 update nodejs version list 2016-07-01 23:39:54 +08:00
Xavier Cambar 6cee20a071 testing NVM_DIR 2016-06-28 12:36:08 +02:00
Jordan Harband 73aa35f508
[Tests] use `$NVM_DIR` instead of relative paths 2016-06-26 15:52:26 -07:00
Jordan Harband ce60b6c44a
[Tests] update test mocks 2016-06-25 17:03:46 -07:00
Jordan Harband c9b7ccdaea
Run `node` and `io.js` installation test suites separately. 2016-05-08 22:21:33 -07:00
Jordan Harband eeaddf9ab0
Don’t restrict colors to TTYs.
This restriction prevents subcommands from producing colors and passing them up the tree to the actual TTY.
2016-05-08 21:24:24 -07:00
Jordan Harband 8a138d98ed
[Refactor] Use `awk` to improve version comparison performance 2016-05-05 01:27:17 -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 1c3f8da6c3
`nvm alias`: factor out alias creation to `nvm_make_alias` 2016-04-27 14:23:34 -07:00
Jordan Harband 2d50606a78
[Tests] flesh out `nvm_print_default_alias` tests 2016-04-30 00:38:49 -07:00
Jordan Harband 09f86b0e6e
[Refactor] Create and use `nvm_is_version_installed` 2016-04-27 17:11:16 -07:00
Jordan Harband 379d079c30
[Tests] Ensure color codes are stripped in alias tests. 2016-04-27 17:05:33 -07:00
Jordan Harband 91c77c6ba8
[Tests] fix shebangs 2016-04-27 17:34:53 -07:00
Jordan Harband ec54c925c1
[Tests] use mocks for `nvm_ls_remote`/`nvm_ls_remote_iojs` tests. 2016-04-27 01:25:56 -07:00
Jordan Harband 677c69dda0
`nvm alias`: explicitly forbid user aliases in subdirs. 2016-04-26 23:07:10 -07:00
Jordan Harband 4df2a7fca9
`nvm alias`: factor out alias printing logic to functions 2016-04-26 22:29:55 -07:00
Jordan Harband 96afff7af2
[Tests] Set up “mocks” directory, and updater script. 2016-04-19 22:49:49 -07:00
Jordan Harband ac18d01854
[Tests] update index.tab data mocks. 2016-04-18 20:43:08 -07:00
Luke Childs 5970a06b19 Add slow test to check nvm uninstall with file permission error 2016-04-18 22:08:40 +01:00
Luke Childs dff4f80f32 Add fast test to check nvm uninstall with file permission error 2016-04-18 21:17:44 +01:00
Luke Childs 6fb528f4e4 Add slow test to check nvm uninstall 2016-04-18 21:17:44 +01:00
Robson Peixoto 8fb4ee0789 Unset unnecessary environment variables 2016-03-11 14:53:36 -03: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
Thomas Levine 06b81f0f36 use env bash rather than /bin/bash
My bash is not installed in /bin/bash.
2016-02-14 19:34:19 +00: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
Jordan Harband 4fcf37fa29 [New] support `--no-use` on sourcing, in supported shells.
Fixes #972.
2016-01-20 12:50:45 -08:00
Matthew Campbell 4f4ff208eb Improve error messages 2016-01-02 11:16:50 -05:00
Matthew Campbell 78fee866f5 Remove usage of declare 2016-01-01 22:33:45 -05:00
Matthew Campbell 8dc53d4dd5 Refactor and fix nvm_detect_profile tests
close #833
close #957
2016-01-01 20:45:36 -05:00
Matthew Campbell 645bda4987 Addresses comments to close #833 2016-01-01 14:09:35 -05:00
David Mankin 918fcb4bd2 PROFILE env var should override detected profile
Add tests for PROFILE overriding detected files
2016-01-01 14:00:36 -05:00
David Mankin cb138a1815 Fix error messages in tests 2016-01-01 13:34:34 -05: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 32d184099c [Tests] fix cleanup in nvm_supports_xz unit test 2015-12-27 13:18:28 -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 cfccf03b3d add test for install from source 2015-12-28 01:37:57 +08:00
Keiichiro Ui b76d43e9f8 Fix `nvm-exec` for the commands includes white-spaces 2015-12-24 19:48:35 +09:00
Peter Dave Hello ec9232bb06 update nodejs.org-dist-index.tab and related test
Src: https://iojs.org/dist/index.tab
2015-12-21 20:50:54 +08:00
Jordan Harband 149e5d483d Use real snapshot of iojs.org data for `nvm_ls_remote_iojs` tests. 2015-10-17 12:05:44 -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
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
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 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 643365a948 Allow `--silent` option to `nvm use` to be in any position. 2015-09-23 04:51:55 -07: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 f34fef96d8 Add `nvm_is_merged_node_version` 2015-08-28 00:51:18 -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
Cristian Consonni c37dbbecb4 Detect shell type from $SHELL variable instead of .$SHELLrc files 2015-07-19 02:03:15 +02:00
Alan Quach 657192dd27 Adding unit tests for --silent 2015-07-10 10:27:35 +10:00
Jordan Harband 7bce6c6c68 `nvm reinstall-packages` should install the same version it had before. 2015-06-29 00:04:59 -07:00
lukechilds c1ef31df53 Remove unnecessary nvm use 2015-06-13 19:38:28 +01:00
lukechilds 3b67b3b9bb Use node instead of nvm run and check v8_use_snapshot in node rather than shell 2015-06-13 18:52:54 +01:00
lukechilds 83466446ce Added newline to end of ARM test 2015-06-13 16:10:49 +01:00
lukechilds 3214caa4ec Adding installation test for disabling V8 snapshot on ARM 2015-06-13 15:58:27 +01:00
Jordan Harband fe044c5e3b `spawn-sync` now dedupes to the top level with this group of packages. 2015-06-07 01:10:55 -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 a4f89c6223 Make sure to ignore `~/.curlrc` if it exists. 2015-05-01 02:00:49 -07:00
Jordan Harband bb2fe618cb The install script only runs in bash. 2015-04-27 16:55:21 -07: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 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
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 82393f5b36 Making sure this test passes whether a system node is installed or not. 2015-04-04 23:49:43 -07:00
HE Shi-Jun 3d69cf7437 update testcase 2015-03-17 15:54:50 +08:00
HE Shi-Jun 14b23bfa95 fix reinstall-packages test 2015-03-15 06:21:35 +08:00
Jordan Harband 2b63f37f8d Make `nvm_resolve_local_alias` not return `N/A` - that should be done as shallowly as possible. 2015-03-14 10:55:31 -07:00
Jordan Harband 0d9329435c Create `nvm_ensure_version_installed` 2015-02-22 02:26:27 -08:00
Jordan Harband a0d04d0b6b Preventing an unalias error in tests. 2015-02-22 02:21:00 -08:00
Jordan Harband 7d22e0c458 Separate `nvm_resolve_alias`'s `nvm_version` behavior into `nvm_resolve_local_alias`. 2015-02-21 16:10:42 -08:00
Jordan Harband 12ca8f2607 Add `nvm_is_alias` unit tests.
Fixes 670.
2015-02-20 13:59:08 -08:00
Jordan Harband 3190effedd Add support for `node` and `iojs` implicit aliases. 2015-02-10 23:43:47 -08:00
Jordan Harband f0d81e2d33 Revert "install: adding some debugging output"
This reverts commit c8efe3d28a.

Conflicts:
	install.sh
2015-02-09 17:16:56 -08:00
elliottcable a216f56443 tests: fail install_script test if npm can't install package 2015-02-07 20:53:53 -06:00
elliottcable c8efe3d28a install: adding some debugging output 2015-02-07 20:50:10 -06:00
elliottcable 0717d5f995 install: some tweaks and clean-up 2015-02-07 17:17:43 -06:00
elliottcable 6cfc309336 install: Pass global-module check in the absence of npm 2015-02-07 17:17:43 -06:00