Fix logic of bureau_git_status function
This separates the gathering of file status, repository status and stash.
This commit is contained in:
parent
286c3e5e28
commit
e1b04cfecd
@ -24,8 +24,10 @@ bureau_git_branch () {
|
||||
|
||||
bureau_git_status() {
|
||||
_STATUS=""
|
||||
if [[ $(command git status --short 2> /dev/null) != "" ]]; then
|
||||
_INDEX=$(command git status --porcelain -b 2> /dev/null)
|
||||
|
||||
# check status of files
|
||||
_INDEX=$(command git status --porcelain 2> /dev/null)
|
||||
if [[ -n "$_INDEX" ]]; then
|
||||
if $(echo "$_INDEX" | command grep '^[AMRD]. ' &> /dev/null); then
|
||||
_STATUS="$_STATUS$ZSH_THEME_GIT_PROMPT_STAGED"
|
||||
fi
|
||||
@ -38,9 +40,12 @@ bureau_git_status () {
|
||||
if $(echo "$_INDEX" | command grep '^UU ' &> /dev/null); then
|
||||
_STATUS="$_STATUS$ZSH_THEME_GIT_PROMPT_UNMERGED"
|
||||
fi
|
||||
if $(command git rev-parse --verify refs/stash >/dev/null 2>&1); then
|
||||
_STATUS="$_STATUS$ZSH_THEME_GIT_PROMPT_STASHED"
|
||||
else
|
||||
_STATUS="$_STATUS$ZSH_THEME_GIT_PROMPT_CLEAN"
|
||||
fi
|
||||
|
||||
# check status of local repository
|
||||
_INDEX=$(command git status --porcelain -b 2> /dev/null)
|
||||
if $(echo "$_INDEX" | command grep '^## .*ahead' &> /dev/null); then
|
||||
_STATUS="$_STATUS$ZSH_THEME_GIT_PROMPT_AHEAD"
|
||||
fi
|
||||
@ -50,8 +55,9 @@ bureau_git_status () {
|
||||
if $(echo "$_INDEX" | command grep '^## .*diverged' &> /dev/null); then
|
||||
_STATUS="$_STATUS$ZSH_THEME_GIT_PROMPT_DIVERGED"
|
||||
fi
|
||||
else
|
||||
_STATUS="$_STATUS$ZSH_THEME_GIT_PROMPT_CLEAN"
|
||||
|
||||
if $(command git rev-parse --verify refs/stash &> /dev/null); then
|
||||
_STATUS="$_STATUS$ZSH_THEME_GIT_PROMPT_STASHED"
|
||||
fi
|
||||
|
||||
echo $_STATUS
|
||||
|
Loading…
Reference in New Issue
Block a user