#!/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