#/bin/zsh

switchto() {
    export OLD_WEBKIT_DIR=$WEBKIT_DIR
    export WEBKIT_DIR=~/Projects/WebKit.$1
    export WEBKIT_OUTPUTDIR=$WEBKIT_DIR/OpenSource/WebKitBuild
    export PERP_BUILD_PATH=$WEBKIT_OUTPUTDIR
    if [[ "$OLD_WEBKIT_DIR" == "" ]]; then
        export PATH=$PATH:$WEBKIT_DIR/Internal/Tools/Scripts:$WEBKIT_DIR/OpenSource/Tools:$WEBKIT_DIR/OpenSource/Tools/Scripts
        export CDPATH=$CDPATH:$WEBKIT_DIR/OpenSource:$WEBKIT_DIR/OpenSource/Source:$WEBKIT_DIR/Internal
    else
        export PATH=$(echo $PATH | sed -e "s;$OLD_WEBKIT_DIR;$WEBKIT_DIR;g")
        export CDPATH=$(echo $CDPATH | sed -e "s;$OLD_WEBKIT_DIR;$WEBKIT_DIR;g")
    fi
    export OLD_WEBKIT_DIR=

    alias opensource="cd $WEBKIT_DIR/OpenSource"
    alias internal="cd $WEBKIT_DIR/Internal"
}

_webkit_dirs() { compadd $( for dir in ~/Projects/WebKit.*; do echo ${dir##*.}; done ) }
_switchto() { _arguments '1:dir:_webkit_dirs' }

compdef _switchto switchto

if [[ $( has subl ) == 'yes' ]]; then
    export GUI_EDITOR="subl -w"
elif [[ $( has bbedit ) == 'yes' ]]; then
    export GUI_EDITOR="bbedit -w"
elif [[ $( has mate_wait ) == 'yes' ]]; then
    export GUI_EDITOR="mate_wait"
else
    export GUI_EDITOR="vim"
fi

if [[ -z "$SSH_TTY" ]]; then
    export EDITOR="$GUI_EDITOR"
    export SVN_LOG_EDITOR="$GUI_EDITOR"
    export GIT_SEQUENCE_EDITOR="$GUI_EDITOR"
else
    export EDITOR=vim
    export SVN_LOG_EDITOR=vim
    export GIT_SEQUENCE_EDITOR=vim
fi

switchto git