Skip to content

Instantly share code, notes, and snippets.

@djmitche
Forked from henrik/.bashrc
Created January 15, 2009 16:59
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 1 You must be signed in to fork a gist
  • Save djmitche/47486 to your computer and use it in GitHub Desktop.
Save djmitche/47486 to your computer and use it in GitHub Desktop.
edit existing PS1; be more efficient
# 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)$ '
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment