darkcloud-vimconfig/update
Kevin 5086483c0b Tweaked the update script to properly handle changing git submodule
source URLs and removed "successfully" from the line saying the update
script completed since it never actually tests to see if it was
successful.
2014-05-05 11:02:40 -04:00

63 lines
2.4 KiB
Bash
Executable file

#!/usr/bin/env bash
# work from the base directory of the repository
cd "${0%/*}"
# create the user vimrc file in the directory if it doesn't already exist
if [ ! -e vim/vimrc.user ]; then
echo "Creating user configuration file 'vim/vimrc.user'..."
if [ -d vim ] && [ -w vim ]; then
echo -e '"Syntax Checking Autostart: (1:start toggled on | 0: start toggled off)\nlet g:autostartchecker=1\n' >> vim/vimrc.user
echo -e '"Vim Starts With The Tagbar Open: (1:start open | 0:start closed)\nlet g:autostarttagbar=0\n' >> vim/vimrc.user
echo -e '"Powerline Font Support: (1:enabled | 0:disabled)\nlet g:powerlinefonts=1\n' >> vim/vimrc.user
echo -e '"GVim Font Selection: (term font set by terminal)\nset guifont=Droid\ Sans\ Mono\ 12' >> vim/vimrc.user
fi
echo
fi
echo "Updating darkcloud-vimconfig..."
git pull origin
git submodule sync
echo -e "\nUpdating plugin submodules..."
git submodule update --init --recursive
# delete submodules in vim/bundle that were removed up stream
echo -e "\nConfiguring plugin submodules..."
[[ -f .gitmodules ]] && for each in vim/bundle/*; do
if [ -d "$each" ]; then
if [ -f "${each}/.git" ]; then
FILE=$(echo $each | grep -o -e "[^\/]*$")
[[ `cat .gitmodules | grep "path = " | grep -o -e "[^\/]*$" | grep -c "${FILE}"` = 0 ]] && (rm -rf "${each}" && echo "Deleted: ${each}" || (echo -e "\033[01;31mWARNING\033[00m: '${each}' was removed upstream but couldn't be deleted here.\n\nPlease delete ${each} manually."; exit 1))
fi
fi
done
echo
# update git-based plugins in vim/bundle.user if any exist
if [ ! $(find vim/bundle.user | grep ".git/config" | wc -l) = 0 ]; then
echo "Updating custom plugins in 'vim/bundle.user':"
pushd vim/bundle.user > /dev/null 2>&1
for each in *; do
if [ -d "$each" ]; then
pushd "$each" > /dev/null 2>&1
if [ -d .git ]; then
echo -e "\nUpdating git repo: ${each}..."
git pull
elif [ -f .git ]; then
echo -e "\nUpdating git submodule: ${each}..."
git pull origin master
fi
popd > /dev/null 2>&1
fi
done
popd > /dev/null 2>&1
echo
fi
echo "Generating updated helpdocs for installed plugins..."
[[ `type -P vim` ]] && vim -c "Helptags|qa!" &>/dev/null 2>&1
echo
echo "Update Complete!"
exit 0