Skip to content

Instantly share code, notes, and snippets.

@yannk
Forked from henrik/.bashrc
Created January 25, 2009 18:05
Show Gist options
  • Star 3 You must be signed in to star a gist
  • Fork 5 You must be signed in to fork a gist
  • Save yannk/52483 to your computer and use it in GitHub Desktop.
Save yannk/52483 to your computer and use it in GitHub Desktop.
[plumbing] bash prompt integrating gist
# add in your .bashrc
# http://henrik.nyh.se/2008/12/git-dirty-prompt
# http://www.simplisticcomplexity.com/2008/03/13/show-your-git-branch-name-in-your-prompt/
# http://blog.cyberion.net/2009/01/improved-bash-prompt-for-git-usage.html
# username@Machine ~/dev/dir[master]$ # clean working directory
# username@Machine ~/dev/dir[master⚡]$ # dirty working directory
#
# I've made the following ajustements:
# - Use of plumbing, that should be faster than git status porcelain.
# - Don't show my repo as dirty if it has files unknown from the index (I always have).
# - Integrated to debian's PS1 (trivial to adapt) and uses standard __git_ps1 from bash_completion
# NOTE: if you notice bash weirdness, disable colors
function __git_dirty {
local dirty RED NO_COLOR
RED="\033[0;31m"
NO_COLOR="\e[0m"
dirty=$(git diff-index --cached --quiet HEAD 2>/dev/null || echo "⚡")
if [ ! -z "$dirty" ]; then
echo "${RED}${dirty}${NO_COLOR}";
return;
fi
dirty=$(git diff-index --quiet HEAD 2>/dev/null || echo "⚡")
[ -z "$dirty" ] && return
echo "${RED}${dirty}${NO_COLOR}";
}
PS1='${debian_chroot:+($debian_chroot)}\[\033[01;32m\]\u@\h\[\033[00m\]:\[\033[01;34m\]\w\[\033[00m\]$(__git_ps1 " [%s$(__git_dirty)]")\$ '
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment