public
Last active — forked from henrik/.bashrc

edit existing PS1; be more efficient

  • Download Gist
.bashrc
Shell
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
# http://henrik.nyh.se/2008/12/git-dirty-prompt
# http://www.simplisticcomplexity.com/2008/03/13/show-your-git-branch-name-in-your-prompt/
# username@Machine ~/dev/dir [master] $ # clean working directory
# username@Machine ~/dev/dir [master*] $ # dirty working directory
# djmitche: *edit* an existing PS1 to add the git information
# djmitche: only invoke 'git' and 'sed' once (each) for each prompt
 
function __git_info {
local status dirty branch
status=$(git status 2> /dev/null)
test -z "$status" && return
[[ "$status" =~ "working directory clean" ]] || dirty="*"
branch=$(sed '1{s/.*branch \(.*\).*/\1/g;q}' <<<"$status")
echo " [$branch$dirty]"
}
 
# append git info to the current prompt
export PS1=`echo "$PS1"|sed 's/\\\\w/\\\\w$(__git_info)/g'`
#export PS1='\u@\h \[\033[1;33m\]\w\[\033[0m\]$(__git_info)$ '

Please sign in to comment on this gist.

Something went wrong with that request. Please try again.