Skip to content

Instantly share code, notes, and snippets.

@reklis
Created February 18, 2013 17:14
Show Gist options
  • Save reklis/4978940 to your computer and use it in GitHub Desktop.
Save reklis/4978940 to your computer and use it in GitHub Desktop.
function gitprompt() {
local NONE="\033[0m" # unsets color to term's fg color
# regular colors
local K="\033[0;30m" # black
local R="\033[0;31m" # red
local G="\033[0;32m" # green
local Y="\033[0;33m" # yellow
local B="\033[0;34m" # blue
local M="\033[0;35m" # magenta
local C="\033[0;36m" # cyan
local W="\033[0;37m" # white
# emphasized (bolded) colors
local EMK="\033[1;30m"
local EMR="\033[1;31m"
local EMG="\033[1;32m"
local EMY="\033[1;33m"
local EMB="\033[1;34m"
local EMM="\033[1;35m"
local EMC="\033[1;36m"
local EMW="\033[1;37m"
# background colors
local BGK="\033[40m"
local BGR="\033[41m"
local BGG="\033[42m"
local BGY="\033[43m"
local BGB="\033[44m"
local BGM="\033[45m"
local BGC="\033[46m"
local BGW="\033[47m"
local branch=`git branch 2>/dev/null | grep ^\* | sed 's/\*\ //'`
if [[ -n "${branch}" ]]; then
local numchanges=`git status -s | wc -l | sed 's/\ *//'`
echo -en "${G}${branch}${NONE} "
if [[ 0 -eq ${numchanges} ]]; then
echo -en "${G}${numchanges}${NONE} "
else
echo -en "${Y}${numchanges}${NONE} "
fi
fi
}
function svnprompt() {
local NONE="\033[0m" # unsets color to term's fg color
# regular colors
local K="\033[0;30m" # black
local R="\033[0;31m" # red
local G="\033[0;32m" # green
local Y="\033[0;33m" # yellow
local B="\033[0;34m" # blue
local M="\033[0;35m" # magenta
local C="\033[0;36m" # cyan
local W="\033[0;37m" # white
# emphasized (bolded) colors
local EMK="\033[1;30m"
local EMR="\033[1;31m"
local EMG="\033[1;32m"
local EMY="\033[1;33m"
local EMB="\033[1;34m"
local EMM="\033[1;35m"
local EMC="\033[1;36m"
local EMW="\033[1;37m"
# background colors
local BGK="\033[40m"
local BGR="\033[41m"
local BGG="\033[42m"
local BGY="\033[43m"
local BGB="\033[44m"
local BGM="\033[45m"
local BGC="\033[46m"
local BGW="\033[47m"
local branch=`svn info 2>/dev/null | egrep '(^URL|^Revision|^Last Changed Rev)' | sed -e 's/URL:.*/svn/' -e 's/Revision: / @/' -e 's/Last Changed Rev: / ∆/' | tr -d '\n'`
if [[ -n "${branch}" ]]; then
local numchanges=`svn status | wc -l | sed 's/\ *//'`
echo -en "${M}${branch}${NONE} "
if [[ 0 -eq ${numchanges} ]]; then
echo -en "${G}${numchanges}${NONE} "
else
echo -en "${Y}${numchanges}${NONE} "
fi
fi
}
export prompt_fail=`echo -e "\033[0;31m\xE2\x98\xA0\033[0m"`
export PROMPT_COMMAND='echo -ne "\033]0;`pwd -L | sed -e "s/.*\///"`/\007"'
export PS1='`result=\$?; if [ $result != 0 ]; then echo -n \[\e[31m\]\$prompt_fail $result\[\e[0m\]; fi`\n`gitprompt``svnprompt`\h:\W\n\$ '
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment