neovim, dotfiles-install: Added an auto-install routine to the bashrc.d that downloads vim-plug for now
This commit is contained in:
parent
0c9b44e53f
commit
adcf84966b
2 changed files with 64 additions and 0 deletions
64
.bashrc.d/dotfiles_install.bashrc
Normal file
64
.bashrc.d/dotfiles_install.bashrc
Normal file
|
@ -0,0 +1,64 @@
|
||||||
|
# This is the first-run installation of the dotfiles utility. Although I have
|
||||||
|
# been trying to avoid the need of executing additional code to put my config
|
||||||
|
# files into place, that is not always possible or practical. The following
|
||||||
|
# script is my attempt to make this as painless as possible.
|
||||||
|
|
||||||
|
# Get the checksum of this very file.
|
||||||
|
read -r checksum _ <<< $(sha256sum "${BASH_SOURCE[0]}")
|
||||||
|
|
||||||
|
# Compare the computed checksum to a cached version from the environment. This
|
||||||
|
# is done instead of a boolean token, so that the installation will run again
|
||||||
|
# automatically, should this file change after an update.
|
||||||
|
if [[ $checksum != $DOTFILES_INSTALL_CHECKSUM ]]; then
|
||||||
|
|
||||||
|
# If the checksum differed, source the file that contains the cached checksum
|
||||||
|
# and compare again to make sure that an update has not occured and already
|
||||||
|
# been processed since the environment has last been sourced at the beginning
|
||||||
|
# of the login session. Testing twice is a trade-off because most of the time
|
||||||
|
# the first test will fail and no file has to be sourced.
|
||||||
|
if [[ -r ~/.environment.d/dotfiles_install.env ]]; then
|
||||||
|
. ~/.environment.d/dotfiles_install.env
|
||||||
|
fi
|
||||||
|
if [[ $checksum != $DOTFILES_INSTALL_CHECKSUM ]]; then
|
||||||
|
# Installation starts here. Sections should still be designed in a way that
|
||||||
|
# they won't run twice if possible.
|
||||||
|
############################################################################
|
||||||
|
echo "Dotfiles: Starting automatic installation routines"
|
||||||
|
dotfiles_install_error="no"
|
||||||
|
|
||||||
|
|
||||||
|
# vim-plug
|
||||||
|
if ! [[ -f ~/.local/share/nvim/site/autoload/plug.vim ]]; then
|
||||||
|
echo "Dotfiles: Downloading vim-plug..."
|
||||||
|
if curl \
|
||||||
|
--fail \
|
||||||
|
--location \
|
||||||
|
--retry 5 \
|
||||||
|
--retry-delay 1 \
|
||||||
|
--create-dirs \
|
||||||
|
--progress-bar \
|
||||||
|
--output ~/.local/share/nvim/site/autoload/plug.vim \
|
||||||
|
https://raw.githubusercontent.com/junegunn/vim-plug/master/plug.vim
|
||||||
|
then
|
||||||
|
echo "Dotfiles: Done"
|
||||||
|
else
|
||||||
|
echo "Dotfiles: Error downloading vim-plug"
|
||||||
|
dotfiles_install_error="yes"
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
|
|
||||||
|
############################################################################
|
||||||
|
# Installation ends here. If we have come this far the installation should
|
||||||
|
# have been successful. Write the current checksum of this file to
|
||||||
|
# dotfiles_install.env and export the variable for good measure.
|
||||||
|
if [[ $dotfiles_install_error == "no" ]]; then
|
||||||
|
echo "Dotfiles: Automatic installation successful. Setting new checksum..."
|
||||||
|
echo "DOTFILES_INSTALL_CHECKSUM=$checksum" > ~/.environment.d/dotfiles_install.env
|
||||||
|
export DOTFILES_INSTALL_CHECKSUM=$checksum
|
||||||
|
else
|
||||||
|
echo "Dotfiles: Errors were encountered during automatic installation"
|
||||||
|
echo "Dotfiles: Installation can be re-run by opening a new shell"
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
fi
|
Loading…
Add table
Add a link
Reference in a new issue