zsh-nvm/zsh-nvm.plugin.zsh

46 lines
1.4 KiB
Bash
Raw Normal View History

[[ -z "$NVM_DIR" ]] && NVM_DIR="$HOME/.nvm"
2016-07-09 02:47:16 +08:00
2016-07-08 20:39:46 +08:00
_zsh_nvm_has() {
type "$1" > /dev/null 2>&1
}
_zsh_nvm_get() {
if _zsh_nvm_has "curl"; then
curl --silent "$1"
elif _zsh_nvm_has "wget"; then
wget --quiet --output-document - "$1"
fi
}
2016-07-09 02:43:09 +08:00
_zsh_nvm_latest_release_tag() {
_zsh_nvm_get "https://api.github.com/repos/creationix/nvm/releases/latest" | # Get latest release from GitHub api
grep '"tag_name":' | # Get tag line
sed -E 's/.*"([^"]+)".*/\1/' # Pluck JSON value
}
2016-07-09 02:47:48 +08:00
_zsh_nvm_install() {
echo "Installing nvm..."
2016-07-09 02:47:48 +08:00
git clone https://github.com/creationix/nvm.git "$NVM_DIR"
$(cd "$NVM_DIR" && git checkout --quiet "$(_zsh_nvm_latest_release_tag)")
2016-07-09 02:47:48 +08:00
}
2016-07-09 02:53:31 +08:00
2016-07-09 03:15:49 +08:00
nvm_update() {
local installed_version=$(cd "$NVM_DIR" && git describe --tags)
echo "Installed version is $installed_version"
2016-07-09 04:19:35 +08:00
echo "Checking latest version of nvm..."
local latest_version=$(_zsh_nvm_latest_release_tag)
if [[ "$installed_version" = "$latest_version" ]]; then
echo "You're already up to date"
else
echo "Updating to $latest_version..."
2016-07-22 03:05:02 +08:00
$(cd "$NVM_DIR" && git fetch --quiet && git checkout "$latest_version")
2016-07-09 16:29:14 +08:00
source "$NVM_DIR/nvm.sh"
fi
2016-07-09 03:15:49 +08:00
}
2016-07-09 02:53:31 +08:00
# Install nvm if it isn't already installed
[[ ! -f "$NVM_DIR/nvm.sh" ]] && _zsh_nvm_install
2016-07-09 02:55:22 +08:00
# If nvm is installed, source it
[[ -f "$NVM_DIR/nvm.sh" ]] && source "$NVM_DIR/nvm.sh"