38 lines
1.4 KiB
Text
38 lines
1.4 KiB
Text
|
#!/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
|