1
0
Fork 0
mirror of https://github.com/ohmyzsh/ohmyzsh.git synced 2024-09-25 01:10:46 +00:00
ohmyzsh/plugins/nvm/nvm.plugin.zsh
Andrew Janke ef44416df2 nvm: use nvm current in nvm_prompt_info and look in alternate install locations
This makes it work regardless of where nvm is loaded from. And it uses nvm's
version strings, which distinguish the "system" and "none" NVM environments,
instead of reporting the specific version of the system node.js or erroring,
respectively.

Fixes #4336
Closes #4338
2020-10-09 17:21:03 +02:00

45 lines
1.3 KiB
Bash

# nvm
#
# This plugin locates and loads nvm, looking for it in well-known locations.
() {
emulate -L zsh
local nvm_install_dir="" dir install_locations
if [[ -n $NVM_INSTALL_DIR ]]; then
# User-specified path
nvm_install_dir=$NVM_INSTALL_DIR
else
# Well-known common installation locations for NVM
install_locations=( ~/.nvm )
[[ -n $NVM_DIR ]] && install_locations=($NVM_DIR $install_locations)
# Mac Homebrew sticks
which brew &>/dev/null && install_locations+=$(brew --prefix nvm)
for dir ($install_locations); do
if [[ -s $dir/nvm.sh ]]; then
nvm_install_dir=$dir
break
fi
done
fi
if [[ -n $nvm_install_dir ]]; then
source $nvm_install_dir/nvm.sh
else
# No NVM installation found
return 0
fi
# Locate and use the completion file shipped with NVM, instead of this
# plugin's completion
# (Their bash completion file has zsh portability support)
if [[ $ZSH_NVM_BUNDLED_COMPLETION == true ]]; then
local bash_comp_file
# Homebrew relocates the bash completion file, so look multiple places
for bash_comp_file ( bash_completion etc/bash_completion.d/nvm ); do
if [[ -s $nvm_install_dir/$bash_comp_file ]]; then
source $nvm_install_dir/$bash_comp_file
break;
fi
done
fi
}