12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364 |
- git_prompt_info () {
- local ref
- if [[ "$(command git config --get oh-my-zsh.hide-status 2>/dev/null)" != "1" ]]
- then
- ref=$(command git symbolic-ref HEAD 2> /dev/null) || ref=$(command git rev-parse --short HEAD 2> /dev/null) || return 0
- echo "$ZSH_THEME_GIT_PROMPT_PREFIX${ref#refs/heads/}$(parse_git_dirty)$ZSH_THEME_GIT_PROMPT_SUFFIX"
- fi
- }
- git_remote_status () {
- local remote ahead behind git_remote_status git_remote_status_detailed
- remote=${$(command git rev-parse --verify ${hook_com[branch]}@{upstream} --symbolic-full-name 2>/dev/null)/refs\/remotes\/}
- if [[ -n ${remote} ]]
- then
- ahead=$(command git rev-list ${hook_com[branch]}@{upstream}..HEAD 2>/dev/null | wc -l)
- behind=$(command git rev-list HEAD..${hook_com[branch]}@{upstream} 2>/dev/null | wc -l)
- if [[ $ahead -eq 0 ]] && [[ $behind -eq 0 ]]
- then
- git_remote_status="$ZSH_THEME_GIT_PROMPT_EQUAL_REMOTE"
- elif [[ $ahead -gt 0 ]] && [[ $behind -eq 0 ]]
- then
- git_remote_status="$ZSH_THEME_GIT_PROMPT_AHEAD_REMOTE"
- git_remote_status_detailed="$ZSH_THEME_GIT_PROMPT_AHEAD_REMOTE_COLOR$ZSH_THEME_GIT_PROMPT_AHEAD_REMOTE$((ahead))%{$reset_color%}"
- elif [[ $behind -gt 0 ]] && [[ $ahead -eq 0 ]]
- then
- git_remote_status="$ZSH_THEME_GIT_PROMPT_BEHIND_REMOTE"
- git_remote_status_detailed="$ZSH_THEME_GIT_PROMPT_BEHIND_REMOTE_COLOR$ZSH_THEME_GIT_PROMPT_BEHIND_REMOTE$((behind))%{$reset_color%}"
- elif [[ $ahead -gt 0 ]] && [[ $behind -gt 0 ]]
- then
- git_remote_status="$ZSH_THEME_GIT_PROMPT_DIVERGED_REMOTE"
- git_remote_status_detailed="$ZSH_THEME_GIT_PROMPT_AHEAD_REMOTE_COLOR$ZSH_THEME_GIT_PROMPT_AHEAD_REMOTE$((ahead))%{$reset_color%}$ZSH_THEME_GIT_PROMPT_BEHIND_REMOTE_COLOR$ZSH_THEME_GIT_PROMPT_BEHIND_REMOTE$((behind))%{$reset_color%}"
- fi
- if [[ -n $ZSH_THEME_GIT_PROMPT_REMOTE_STATUS_DETAILED ]]
- then
- git_remote_status="$ZSH_THEME_GIT_PROMPT_REMOTE_STATUS_PREFIX$remote$git_remote_status_detailed$ZSH_THEME_GIT_PROMPT_REMOTE_STATUS_SUFFIX"
- fi
- echo $git_remote_status
- fi
- }
- parse_git_dirty () {
- local STATUS=''
- local -a FLAGS
- FLAGS=('--porcelain')
- if [[ "$(command git config --get oh-my-zsh.hide-dirty)" != "1" ]]
- then
- if [[ $POST_1_7_2_GIT -gt 0 ]]
- then
- FLAGS+='--ignore-submodules=dirty'
- fi
- if [[ "$DISABLE_UNTRACKED_FILES_DIRTY" == "true" ]]
- then
- FLAGS+='--untracked-files=no'
- fi
- STATUS=$(command git status ${FLAGS} 2> /dev/null | tail -n1)
- fi
- if [[ -n $STATUS ]]
- then
- echo "$ZSH_THEME_GIT_PROMPT_DIRTY"
- else
- echo "$ZSH_THEME_GIT_PROMPT_CLEAN"
- fi
- }
|