manager/.helpers/vim/generate-vim-config

37 lines
1.4 KiB
Bash
Executable file

#!/usr/bin/env bash
set -euo pipefail
GIT_ROOT_DIR="$( cd "$( dirname $0 )/../.." && pwd )"
VIM_CONFIG_SOURCE_DIR="${GIT_ROOT_DIR}/config/vim"
VIM_CONFIG_DESTINATION_DIR="${XDG_CONFIG_HOME}/vim"
MINPAC_SOURCE="https://github.com/k-takata/minpac.git"
MINPAC_DESTINATION="${XDG_DATA_HOME}/vim/pack/bundle/opt/minpac"
GOTAGS_SOURCE="github.com/jstemmer/gotags"
# Creating essential vim directories
mkdir -p ${VIM_CONFIG_DESTINATION_DIR}
mkdir -p ${XDG_CACHE_HOME}/vim/{backup,swap,undo,view} && chmod 0700 ${XDG_CACHE_HOME}/vim/{backup,swap,undo,view}
mkdir -p ${XDG_DATA_HOME}/vim/spell && chmod 0700 ${XDG_DATA_HOME}/vim/spell
# Syncing the vim configuration files
echo "INFO: syncing ${VIM_CONFIG_SOURCE_DIR} to ${VIM_CONFIG_DESTINATION_DIR}"
rsync -avh --exclude=*.gitkeep ${VIM_CONFIG_SOURCE_DIR}/ ${VIM_CONFIG_DESTINATION_DIR}
chmod a-rwx,u+rwx ${VIM_CONFIG_DESTINATION_DIR}
find ${VIM_CONFIG_DESTINATION_DIR} -type d -not -wholename */pack/bundle/opt/* -not -wholename */pack/bundle/start/* \
| xargs chmod a-rwx,u+rwx
# Ensuring minpac and gotags are installed
if ! [ -d ${MINPAC_DESTINATION}/.git ]; then
echo "INFO: Cloning ${MINPAC_SOURCE} to ${MINPAC_DESTINATION}"
git clone --depth=1 ${MINPAC_SOURCE} ${MINPAC_DESTINATION}
fi
if [ -x "$( command -v go )" ]; then
if ! [ -x "$( command -v gotags )" ]; then
echo "INFO: Installing gotags"
go get -u ${GOTAGS_SOURCE}
fi
fi