summaryrefslogtreecommitdiff
path: root/plugins/nodenv/nodenv.plugin.zsh
blob: 79a4ffbb520e54348fd2981d87acee4450538706 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
# This plugin loads nodenv into the current shell and provides prompt info via
# the 'nodenv_prompt_info' function.

FOUND_NODENV=${+commands[nodenv]}

if [[ $FOUND_NODENV -ne 1 ]]; then
  nodenvdirs=(
    "$HOME/.nodenv"
    "/usr/local/nodenv"
    "/opt/nodenv"
    "/usr/local/opt/nodenv"
  )
  for dir in $nodenvdirs; do
    if [[ -d "${dir}/bin" ]]; then
      export PATH="$PATH:${dir}/bin"
      FOUND_NODENV=1
      break
    fi
  done

  if [[ $FOUND_NODENV -ne 1 ]]; then
    if (( $+commands[brew] )) && dir=$(brew --prefix nodenv 2>/dev/null); then
      if [[ -d "${dir}/bin" ]]; then
        export PATH="$PATH:${dir}/bin"
        FOUND_NODENV=1
      fi
    fi
  fi
fi

if [[ $FOUND_NODENV -eq 1 ]]; then
  eval "$(nodenv init --no-rehash - zsh)"
  function nodenv_prompt_info() {
    nodenv version-name 2>/dev/null
  }
else
  # fallback to system node
  function nodenv_prompt_info() {
    echo "system: $(node -v 2>&1 | cut -c 2-)"
  }
fi

unset FOUND_NODENV nodenvdirs dir