nodenv.plugin.zsh
992 bytes
1# This plugin loads nodenv into the current shell and provides prompt info via
2# the 'nodenv_prompt_info' function.
3
4FOUND_NODENV=${+commands[nodenv]}
5
6if [[ $FOUND_NODENV -ne 1 ]]; then
7 nodenvdirs=(
8 "$HOME/.nodenv"
9 "/usr/local/nodenv"
10 "/opt/nodenv"
11 "/usr/local/opt/nodenv"
12 )
13 for dir in $nodenvdirs; do
14 if [[ -d "${dir}/bin" ]]; then
15 export PATH="$PATH:${dir}/bin"
16 FOUND_NODENV=1
17 break
18 fi
19 done
20
21 if [[ $FOUND_NODENV -ne 1 ]]; then
22 if (( $+commands[brew] )) && dir=$(brew --prefix nodenv 2>/dev/null); then
23 if [[ -d "${dir}/bin" ]]; then
24 export PATH="$PATH:${dir}/bin"
25 FOUND_NODENV=1
26 fi
27 fi
28 fi
29fi
30
31if [[ $FOUND_NODENV -eq 1 ]]; then
32 eval "$(nodenv init --no-rehash - zsh)"
33 function nodenv_prompt_info() {
34 nodenv version-name 2>/dev/null
35 }
36else
37 # fallback to system node
38 function nodenv_prompt_info() {
39 echo "system: $(node -v 2>&1 | cut -c 2-)"
40 }
41fi
42
43unset FOUND_NODENV nodenvdirs dir