Commit Graph

863 Commits

Author SHA1 Message Date
Michael Martinez 11507c3f38 Fixes bug where NVM init script is appended to the wrong startup file
The existence of .bashrc, .bash_profile or .zshrc doesn't prove that the file is the currently utilized startup file or that it is the only file sourced. Because the current code operates under this assumption, the code:

```bash
  export NVM_DIR="/Users/<USERNAME>/.nvm"
  [ -s "$NVM_DIR/nvm.sh" ] && . "$NVM_DIR/nvm.sh"  # This loads nvm
```
is getting appended to the wrong profile for zsh users.

1) `[ -d ~/.nvm ] && rm -rfv ~/.nvm `
2) Install Zsh via https://github.com/robbyrussell/oh-my-zsh
3) Run nvm install script with cURL.
4) Run `which nvm`. Observe it's not in `$PATH`
5) Open a new shell session. Observe the issue persists.

To fix this, the code in this PR checks:

- Is `$PROFILE` set? If so, echo it.
- What is the active shell that is executing this script? (the parent shell)
- If the shell is zsh, echo the zshrc file
- If the shell is bash:
	- Is it login or non-login? Echo the neccessary file
	- Is it interactive or non interactive? Echo the neccessary
	  file.

This logic should address the primary bug and also prevent future bugs.

Note: bash by default reads ~/.profile last so it makes sense to write to ~/.bashrc or ~/.bash_profile instead of ~/.profile

See: https://www.gnu.org/software/bash/manual/html_node/Bash-Startup-Files.html

Passed Manual Tests:
  zsh
  bash from within script
  bash as default shell
  bash -l from within zsh
2015-01-15 01:35:36 -08:00
Jordan Harband 448bd38a55 v0.22.2 2015-01-14 15:44:40 -08:00
Jordan Harband 0ad5a450fe Put node versions >= 0.12 in `versions/node` instead of just `versions` 2015-01-14 12:23:06 -08:00
Jordan Harband d5e21be164 Add `nvm_ensure_version_prefix` unit tests. 2015-01-13 23:51:54 -08:00
Jordan Harband 797c5ab70b Move "install node from source" logic into `nvm_install_node_source` function. 2015-01-13 18:15:42 -08:00
Jordan Harband 0e209ce890 Move "install node binary" logic into `nvm_install_node_binary` function. 2015-01-13 14:08:56 -08:00
Jordan Harband 9a57a891b9 Refactor OS and architecture detection into separate functions. 2015-01-13 02:41:55 -08:00
Jordan Harband 3d5ded1815 Update the way `nvm_ls` sorts things. 2015-01-13 00:21:33 -08:00
Jordan Harband 7807a9f09e Consolidate "alias" directory to a method. 2015-01-12 01:27:53 -08:00
Jordan Harband 835c006b5e Better way to search multiple directories in `nvm_ls` 2015-01-12 01:15:48 -08:00
Jordan Harband 34e51f9f02 Proper quoting and $(…) vs `…`. 2015-01-11 12:13:14 -08:00
Jordan Harband 4b5885d69d Store the version path in a local variable for reuse. 2015-01-11 12:04:26 -08:00
Jordan Harband bf794ff8da Consistently prefix builtins with `command` 2015-01-11 11:53:24 -08:00
Jordan Harband 0bd7372c64 Rename this local var in `nvm_version_dir` 2015-01-11 11:38:55 -08:00
Jordan Harband 0a142b7e7a v0.22.1 2015-01-10 19:43:36 -08:00
Jordan Harband 3fc82d6b2f Use `command sed` for people who alias `sed`.
Fixes #493.
2015-01-09 01:50:05 -08:00
Jordan Harband c6489440dc Add nvm_ls_current test for #605 and `zsh`. 2015-01-01 23:31:55 -08:00
Jordan Harband 67e8939311 Merge pull request #605 from dhcmrlchtdj/fix_which
Fix which command in zsh (#604).
2015-01-01 22:28:30 -08:00
niris a26007ec0d fix test suit 2015-01-02 12:51:59 +08:00
niris 3f5ce8b93a Fix which command in zsh (#604). 2015-01-02 10:20:57 +08:00
Jordan Harband 8328741792 Removing an unnecessary `return $?` 2014-12-28 22:29:26 -08:00
Jordan Harband 8e45afb9f1 Move the version to a single location, nvm_latest_version. 2014-12-28 15:59:06 -08:00
Jordan Harband fd2fb24b03 Refactor `nvm_source` a bit. 2014-12-28 15:55:44 -08:00
Jordan Harband 4708cc73ef Update `semver` 2014-12-27 01:39:48 -08:00
Jordan Harband c91e8d0ba2 v0.22.0 2014-12-26 16:30:21 -08:00
Jordan Harband f8b143c594 Merge pull request #602 from ljharb/install_on_source
Support `--install` option on sourcing `nvm.sh`
2014-12-26 14:03:22 -08:00
Jordan Harband 9a4e9060d8 Don't bother testing --install option on source, or supporting it, unless the shell supports passing options upon sourcing. 2014-12-26 13:33:33 -08:00
Jordan Harband 3df0caefa5 Support `--install` option upon sourcing. 2014-12-26 12:19:35 -08:00
Jordan Harband 274369dc40 Remove trailing whitespace 2014-12-22 23:08:03 -08:00
Jordan Harband bef3a5ce3a v0.21.0 2014-12-22 12:03:33 -08:00
Jordan Harband 0cb8c9ac2f Merge pull request #599 from ljharb/nvm_get_latest
Add `nvm_get_latest`

This relates to #522, #561, #400.

`nvm_get_latest` uses http://latest.nvm.sh which redirects to https://github.com/creationix/nvm/releases/latest which in turn redirects to the latest release tag.
2014-12-22 11:02:07 -08:00
Jordan Harband 25c61594fe Tests for `nvm_get_latest` 2014-12-21 18:13:59 -08:00
Jordan Harband 0a739e3fa9 Add `nvm_get_latest` 2014-12-21 16:33:52 -08:00
Jordan Harband c0a20f2fa3 Update `semver` 2014-12-19 17:13:00 -08:00
Jordan Harband 2d78d69d4c Properly outputting the version when nvm_version_path outputs the new "versions" subdirectory. 2014-12-19 17:12:38 -08:00
Jordan Harband 9e17b5059c Return the proper exit code of `which` directly. 2014-12-19 16:23:27 -08:00
Jordan Harband 0ac2c787be Merge pull request #597 from danielb2/which
Fix `nvm which` to use conventional direct path to program, like system `which`
2014-12-19 13:05:39 -08:00
Daniel Bretoi 99ca0de18f revert echoing path. make tests even better 2014-12-19 11:31:46 -08:00
Daniel Bretoi f196ace5dd style 2014-12-19 11:10:50 -08:00
Daniel Bretoi d1a90ca15c work like system which. show system node without changing to use it 2014-12-19 11:10:50 -08:00
Jordan Harband b3178ca925 Add "--quiet" to git commands post-install.
Mentioned in #595.
2014-12-18 10:37:10 -08:00
Jordan Harband b9df3fccb4 Remove trailing whitespace. 2014-12-17 01:30:29 -08:00
Jordan Harband f408d68afc Add `nvmrc` note to `nvm which` blurb. 2014-12-17 01:30:23 -08:00
Jordan Harband fc3a30dd0e Add `nvm which` to `bash_completion` 2014-12-17 01:29:38 -08:00
Jordan Harband 74b36b09ff Merge pull request #583 from danielb2/which
Adds `nvm which`
2014-12-17 01:26:50 -08:00
Jordan Harband 080f2149ac Update `urchin` 2014-12-08 21:51:06 -08:00
Jordan Harband 3bd148056e Fixing deactivate tests.
Fixes #357.
2014-12-03 00:04:43 -08:00
Jordan Harband 5edf013127 Merge pull request #591 from mklement0/fix_make_file
obsolete check for the urchin cross-shell test feature; fix for spurious...
2014-12-02 23:40:24 -08:00
Michael Klement ae908cbff6 obsolete check for the urchin cross-shell test feature; fix for spurious warnings; improved robustness 2014-12-03 01:47:54 -05:00
Daniel Bretoi 7805492bda merge with master 2014-12-02 13:01:37 -08:00