dotfiles/_home/private_dot_local/bin/executable_update-nvim

58 lines
2.0 KiB
Bash

#! /usr/bin/env bash
set -e
BASE_0=${BASE_0:-$0}
BASE_SHELL=$(basename "$SHELL")
_update-nvim() {
local LatestURL="$(get-github-release.sh \
neovim/neovim latest appimage \
| grep appimage\$
)"
local appDir="${HOME}/.local/bin"
if [ "$USER" = "root" ]; then
appDir="${HOME}/usr-local-bin"
while umount --types overlay /usr/local/bin 2>/dev/null; do
:
done
mkdir -pm 755 "$appDir" \
&& mount -t overlay overlay -o "lowerdir=$appDir:/usr/local/bin" /usr/local/bin
update-alternatives --remove vim.tiny /usr/bin/vim.tiny
fi
local appPath="${appDir}/nvim.AppImage"
rm "${appDir}/"{nvim.AppImage,nvim,vi,vim,vim.tiny,vimdiff} 2>/dev/null || true
printf 'Downloading from %s... ' "${LatestURL#*/download/}"
curl -sLo "$appPath" "$LatestURL" && printf 'Done'
printf '\n'
chmod +x "$appPath"
ln -rs "$appPath" "${appDir}/nvim"
ln -rs "$appPath" "${appDir}/vi"
ln -rs "$appPath" "${appDir}/vim"
ln -rs "$appPath" "${appDir}/vim.tiny"
ln -rs "$appPath" "${appDir}/vimdiff"
if [ "$USER" = "root" ]; then
update-alternatives --install /usr/bin/editor editor "$appPath" 110
update-alternatives --install /usr/bin/edit edit "$appPath" 110
update-alternatives --install /usr/bin/ex ex "$appPath" 110
update-alternatives --install /usr/bin/vi vi "$appPath" 110
update-alternatives --install /usr/bin/view view "$appPath" 110
update-alternatives --install /usr/bin/vim vim "$appPath" 110
update-alternatives --install /usr/bin/vimdiff vimdiff "$appPath" 110
update-alternatives --set editor "$appPath"
update-alternatives --set edit "$appPath"
update-alternatives --set ex "$appPath"
update-alternatives --set vi "$appPath"
update-alternatives --set view "$appPath"
update-alternatives --set vim "$appPath"
update-alternatives --set vimdiff "$appPath"
fi
}
_update-nvim "${@}"