# set a fancy prompt (non-color, unless we know we "want" color)
case "$TERM" in
    xterm-color|*-256color) color_prompt=yes;;
esac

function __set_prompt() {
    local branch
    branch=$(git branch --show-current 2>/dev/null)

    # Colors (wrapped in \[ \] for proper length calculation)
    local yellow_bg='\[\033[43;30m\]'
    local blue_bg='\[\033[44;30m\]'
    local yellow_on_blue='\[\033[44;33m\]'
    local blue='\[\033[0;34m\]'
    local yellow='\[\033[0;33m\]'
    local reset='\[\033[0m\]'
    local arrow=$'\ue0b0'

    if [[ -n "$branch" ]]; then
        PS1="${yellow_bg} \w ${yellow_on_blue}${arrow}${blue_bg} ${branch} ${blue}${arrow}${reset} "
    else
        PS1="${yellow_bg} \w ${yellow}${arrow}${reset} "
    fi
}

if [ "$color_prompt" = yes ]; then
    PROMPT_COMMAND=__set_prompt
else
    PS1='\w\$ '
fi

unset color_prompt

printf '\033[3 q'