# It looks like this but with color and stuff:
# (macbot • sample_app ┣master ∆68m)$
# (macbot • autumn ┣master ∆2yr8mo)$


function relative_time_since_last_commit {
    last_commit=`git log --pretty=format:'%ar' -1`
    echo ${last_commit}
}
 
function format_unit {
    local UNIT=$1
    case "$UNIT" in
        seconds)    UNIT="s"    ;;
        minutes)    UNIT="m"    ;;
        hours)      UNIT="h"    ;;
        days)       UNIT="d"    ;;
        weeks)      UNIT="w"    ;;
        months)     UNIT="mo"   ;;      
        years)      UNIT="yr"   ;;      
        *);;
    esac
    echo ${UNIT}
}     

function color_based_on_unit {
    local UNIT=$1
    if [ "$UNIT" == "s" ] || [ "$UNIT" == "m" ]; then
        local COLOR=${GREEN}  
    elif [ "$UNIT" == "h" ]; then
        local COLOR=${YELLOW} 
    else
        local COLOR=${RED}    
    fi
    echo ${COLOR}
}

srb_git_prompt() {
    local g="$(__gitdir)"
    if [ -n "$g" ]; then
        local SINCE_LAST_COMMIT=$(relative_time_since_last_commit)
        SINCE_LAST_COMMIT=(${SINCE_LAST_COMMIT// / })
        local VALUE=${SINCE_LAST_COMMIT[0]}
        local UNIT=$(format_unit ${SINCE_LAST_COMMIT[1]/,/})
 
        # for old projects, git reports years and months
        if [ ${SINCE_LAST_COMMIT[2]} != "ago" ]; then
            local EXTRA_VALUE=${SINCE_LAST_COMMIT[2]}
            local EXTRA_UNIT=$(format_unit ${SINCE_LAST_COMMIT[3]/,/})
        fi
 
        local COLOR=$(color_based_on_unit $UNIT)
        local DELTA="${VALUE}${UNIT}${EXTRA_VALUE}${EXTRA_UNIT}"
        
        # The __git_ps1 function inserts the current git branch where %s is
        local GIT_PROMPT=`__git_ps1 "┣ %s ∆${COLOR}${DELTA}${NORMAL}"`
        echo " ${GIT_PROMPT}"
    fi
}    

PS1="(\h • ${YELLOW}\W${NORMAL}\$(srb_git_prompt))${BRIGHT_BLUE}\$${NORMAL} "