feat(nodenv): add plugin for nodenv
(#9880)
Co-authored-by: Matthew Boston <matthew@matthewboston.com>
This commit is contained in:
parent
16050ab80e
commit
21bdb18b2d
20
plugins/nodenv/README.md
Normal file
20
plugins/nodenv/README.md
Normal file
|
@ -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)'
|
||||||
|
```
|
43
plugins/nodenv/nodenv.plugin.zsh
Normal file
43
plugins/nodenv/nodenv.plugin.zsh
Normal file
|
@ -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 a new issue