feat(nodenv): add plugin for `nodenv` (#9880)
Co-authored-by: Matthew Boston <matthew@matthewboston.com>master
parent
16050ab80e
commit
21bdb18b2d
2 changed files with 63 additions and 0 deletions
@ -0,0 +1,20 @@ |
||||
# nodenv plugin |
||||
|
||||
The primary job of this plugin is to provide `nodenv_prompt_info` which can be added to your theme to include Node |
||||
version information into your prompt. |
||||
|
||||
To use it, add `nodenv` to the plugins array in your zshrc file: |
||||
|
||||
```zsh |
||||
plugins=(... nodenv) |
||||
``` |
||||
|
||||
## Functions |
||||
|
||||
* `nodenv_prompt_info`: displays the Node version in use by nodenv; or the global Node |
||||
version, if nodenv wasn't found. You can use this function in your prompt by adding |
||||
`$(nodenv_prompt_info)` to PROMPT or RPROMPT: |
||||
|
||||
```zsh |
||||
RPROMPT='$(nodenv_prompt_info)' |
||||
``` |
||||
@ -0,0 +1,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 |
||||
Loading…
Reference in new issue