nodenv.plugin.zsh 992 B

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