diff --git a/lib/git.zsh b/lib/git.zsh index 390c0ad4b..be9fa7e67 100644 --- a/lib/git.zsh +++ b/lib/git.zsh @@ -34,30 +34,26 @@ function git_prompt_info() { # Checks if working tree is dirty function parse_git_dirty() { - if [[ "$(__git_prompt_git config --get oh-my-zsh.hide-dirty)" == "1" ]]; then - return 0 - fi - local STATUS local -a FLAGS FLAGS=('--porcelain') - if [[ "${DISABLE_UNTRACKED_FILES_DIRTY:-}" == "true" ]]; then - FLAGS+='--untracked-files=no' + if [[ "$(__git_prompt_git config --get oh-my-zsh.hide-dirty)" != "1" ]]; then + if [[ "${DISABLE_UNTRACKED_FILES_DIRTY:-}" == "true" ]]; then + FLAGS+='--untracked-files=no' + fi + case "${GIT_STATUS_IGNORE_SUBMODULES:-}" in + git) + # let git decide (this respects per-repo config in .gitmodules) + ;; + *) + # if unset: ignore dirty submodules + # other values are passed to --ignore-submodules + FLAGS+="--ignore-submodules=${GIT_STATUS_IGNORE_SUBMODULES:-dirty}" + ;; + esac + STATUS=$(__git_prompt_git status ${FLAGS} 2> /dev/null | tail -n 1) fi - - case "${GIT_STATUS_IGNORE_SUBMODULES:-}" in - git) - # let git decide (this respects per-repo config in .gitmodules) - ;; - *) - # if unset: ignore dirty submodules - # other values are passed to --ignore-submodules - FLAGS+="--ignore-submodules=${GIT_STATUS_IGNORE_SUBMODULES:-dirty}" - ;; - esac - - STATUS=$(__git_prompt_git status ${FLAGS} 2> /dev/null | tail -n 1) - if [[ -n "$STATUS" ]]; then + if [[ -n $STATUS ]]; then echo "$ZSH_THEME_GIT_PROMPT_DIRTY" else echo "$ZSH_THEME_GIT_PROMPT_CLEAN"