Display various git states (dirty, staged and untracked)

This commit is contained in:
Luke Randall 2010-09-05 17:58:02 +02:00
commit 3fc27000d7
2 changed files with 24 additions and 4 deletions

View file

@ -5,9 +5,23 @@ function git_prompt_info() {
} }
parse_git_dirty () { parse_git_dirty () {
if [[ -n $(git status -s 2> /dev/null) ]]; then gitstat=$(git status -s 2>/dev/null | grep -v '\(^A|^M|^.M|??\)')
echo "$ZSH_THEME_GIT_PROMPT_DIRTY"
if [[ $(echo ${gitstat} | grep -v '^$' | wc -l | tr -d ' ') == 0 ]]; then
echo -n "$ZSH_THEME_GIT_PROMPT_CLEAN"
else else
echo "$ZSH_THEME_GIT_PROMPT_CLEAN" echo -n "$ZSH_THEME_GIT_PROMPT_UNCLEAN_SPACER"
fi
if [[ $(echo ${gitstat} | grep -c "^.M") > 0 ]]; then
echo -n "$ZSH_THEME_GIT_PROMPT_DIRTY"
fi
if [[ $(echo ${gitstat} | grep -c "^[MA]") > 0 ]]; then
echo -n "$ZSH_THEME_GIT_PROMPT_STAGED"
fi
if [[ $(echo ${gitstat} | grep -c '^??') > 0 ]]; then
echo -n "$ZSH_THEME_GIT_PROMPT_UNTRACKED"
fi fi
} }

View file

@ -8,3 +8,9 @@ RPS1="${return_code}"
ZSH_THEME_GIT_PROMPT_PREFIX="%{$fg[yellow]%}(" ZSH_THEME_GIT_PROMPT_PREFIX="%{$fg[yellow]%}("
ZSH_THEME_GIT_PROMPT_SUFFIX=") %{$reset_color%}" ZSH_THEME_GIT_PROMPT_SUFFIX=") %{$reset_color%}"
ZSH_THEME_GIT_PROMPT_DIRTY="*"
ZSH_THEME_GIT_PROMPT_STAGED="+"
ZSH_THEME_GIT_PROMPT_UNTRACKED="%%"
ZSH_THEME_GIT_PROMPT_UNCLEAN_SPACER=" "