#!/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
    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=1\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
fi

# update the repository and submodules
git pull origin
git submodule update --init --recursive

# delete any submodule no longer in the repository
[[ -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

# update the help text for any new/changed pathogen plugin
[[ `type -P vim` ]] && vim -c "Helptags|qa!" &>/dev/null 2>&1

# exit cleanly
exit 0