Merge pull request #387 from edubxb/more-git-info
More Git repository info available for themespull/388/head
commit
62443ced3d
|
|
@ -78,9 +78,18 @@ function git_prompt_vars {
|
||||||
SCM_GIT_AHEAD=''
|
SCM_GIT_AHEAD=''
|
||||||
SCM_GIT_BEHIND=''
|
SCM_GIT_BEHIND=''
|
||||||
SCM_GIT_STASH=''
|
SCM_GIT_STASH=''
|
||||||
|
SCM_GIT_UNTRACKED=''
|
||||||
|
SCM_GIT_UNSTAGED=''
|
||||||
|
SCM_GIT_STAGED=''
|
||||||
if [[ "$(git config --get bash-it.hide-status)" != "1" ]]; then
|
if [[ "$(git config --get bash-it.hide-status)" != "1" ]]; then
|
||||||
local status="$(git status -b --porcelain 2> /dev/null || git status --porcelain 2> /dev/null)"
|
local status="$(git status -b --porcelain 2> /dev/null || git status --porcelain 2> /dev/null)"
|
||||||
if [[ -n "${status}" ]] && [[ "${status}" != "\n" ]] && [[ -n "$(grep -v ^# <<< "${status}")" ]]; then
|
if [[ -n "${status}" ]] && [[ "${status}" != "\n" ]] && [[ -n "$(grep -v ^# <<< "${status}")" ]]; then
|
||||||
|
local untracked_count="$(egrep -c '^\?\? .+' <<< "${status}")"
|
||||||
|
local unstaged_count="$(egrep -c '^.[^ ?#] .+' <<< "${status}")"
|
||||||
|
local staged_count="$(egrep -c '^[^ ?#]. .+' <<< "${status}")"
|
||||||
|
[[ "${untracked_count}" -gt 0 ]] && SCM_GIT_UNTRACKED="${SCM_GIT_UNTRACKED_CHAR}${untracked_count}"
|
||||||
|
[[ "${unstaged_count}" -gt 0 ]] && SCM_GIT_UNSTAGED="${SCM_GIT_UNSTAGED_CHAR}${unstaged_count}"
|
||||||
|
[[ "${staged_count}" -gt 0 ]] && SCM_GIT_STAGED="${SCM_GIT_STAGED_CHAR}${staged_count}"
|
||||||
SCM_DIRTY=1
|
SCM_DIRTY=1
|
||||||
SCM_STATE=${GIT_THEME_PROMPT_DIRTY:-$SCM_THEME_PROMPT_DIRTY}
|
SCM_STATE=${GIT_THEME_PROMPT_DIRTY:-$SCM_THEME_PROMPT_DIRTY}
|
||||||
else
|
else
|
||||||
|
|
@ -107,10 +116,10 @@ function git_prompt_vars {
|
||||||
SCM_CHANGE=$(git rev-parse HEAD 2>/dev/null)
|
SCM_CHANGE=$(git rev-parse HEAD 2>/dev/null)
|
||||||
local ahead_re='.+ahead ([0-9]+).+'
|
local ahead_re='.+ahead ([0-9]+).+'
|
||||||
local behind_re='.+behind ([0-9]+).+'
|
local behind_re='.+behind ([0-9]+).+'
|
||||||
[[ "${status}" =~ ${ahead_re} ]] && SCM_GIT_AHEAD=" ${SCM_GIT_AHEAD_CHAR}${BASH_REMATCH[1]}"
|
[[ "${status}" =~ ${ahead_re} ]] && SCM_GIT_AHEAD="${SCM_GIT_AHEAD_CHAR}${BASH_REMATCH[1]}"
|
||||||
[[ "${status}" =~ ${behind_re} ]] && SCM_GIT_BEHIND=" ${SCM_GIT_BEHIND_CHAR}${BASH_REMATCH[1]}"
|
[[ "${status}" =~ ${behind_re} ]] && SCM_GIT_BEHIND="${SCM_GIT_BEHIND_CHAR}${BASH_REMATCH[1]}"
|
||||||
local stash_count="$(git stash list 2> /dev/null | wc -l | tr -d ' ')"
|
local stash_count="$(git stash list 2> /dev/null | wc -l | tr -d ' ')"
|
||||||
[[ "${stash_count}" -gt 0 ]] && SCM_GIT_STASH=" {${stash_count}}"
|
[[ "${stash_count}" -gt 0 ]] && SCM_GIT_STASH="{${stash_count}}"
|
||||||
}
|
}
|
||||||
|
|
||||||
function svn_prompt_vars {
|
function svn_prompt_vars {
|
||||||
|
|
|
||||||
|
|
@ -11,11 +11,24 @@ SCM_NONE_CHAR=""
|
||||||
SCM_GIT_CHAR="⎇ "
|
SCM_GIT_CHAR="⎇ "
|
||||||
SCM_GIT_BEHIND_CHAR="↓"
|
SCM_GIT_BEHIND_CHAR="↓"
|
||||||
SCM_GIT_AHEAD_CHAR="↑"
|
SCM_GIT_AHEAD_CHAR="↑"
|
||||||
|
SCM_GIT_UNTRACKED_CHAR="?:"
|
||||||
|
SCM_GIT_UNSTAGED_CHAR="U:"
|
||||||
|
SCM_GIT_STAGED_CHAR="S:"
|
||||||
|
|
||||||
|
if [[ -z "$THEME_SCM_TAG_PREFIX" ]]; then
|
||||||
|
SCM_TAG_PREFIX="tag > "
|
||||||
|
else
|
||||||
|
SCM_TAG_PREFIX="$THEME_SCM_TAG_PREFIX"
|
||||||
|
fi
|
||||||
|
|
||||||
SCM_THEME_PROMPT_CLEAN=""
|
SCM_THEME_PROMPT_CLEAN=""
|
||||||
SCM_THEME_PROMPT_DIRTY=""
|
SCM_THEME_PROMPT_DIRTY=""
|
||||||
|
|
||||||
SCM_THEME_PROMPT_COLOR=238
|
SCM_THEME_PROMPT_COLOR=238
|
||||||
SCM_THEME_PROMPT_CLEAN_COLOR=231
|
SCM_THEME_PROMPT_CLEAN_COLOR=231
|
||||||
SCM_THEME_PROMPT_DIRTY_COLOR=220
|
SCM_THEME_PROMPT_DIRTY_COLOR=196
|
||||||
|
SCM_THEME_PROMPT_STAGED_COLOR=220
|
||||||
|
SCM_THEME_PROMPT_UNSTAGED_COLOR=166
|
||||||
|
|
||||||
CWD_THEME_PROMPT_COLOR=240
|
CWD_THEME_PROMPT_COLOR=240
|
||||||
|
|
||||||
|
|
@ -41,9 +54,17 @@ function powerline_shell_prompt {
|
||||||
}
|
}
|
||||||
|
|
||||||
function powerline_virtualenv_prompt {
|
function powerline_virtualenv_prompt {
|
||||||
if [[ -n "$VIRTUAL_ENV" ]]; then
|
local environ=""
|
||||||
virtualenv=$(basename "$VIRTUAL_ENV")
|
|
||||||
VIRTUALENV_PROMPT="$(set_rgb_color - ${VIRTUALENV_THEME_PROMPT_COLOR}) ${VIRTUALENV_CHAR}$virtualenv ${normal}"
|
if [[ -n "$CONDA_DEFAULT_ENV" ]]; then
|
||||||
|
environ="conda: $CONDA_DEFAULT_ENV"
|
||||||
|
elif [[ -n "$VIRTUAL_ENV" ]]; then
|
||||||
|
environ=$(basename "$VIRTUAL_ENV")
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [[ -n "$environ" ]]; then
|
||||||
|
VIRTUALENV_PROMPT="$(set_rgb_color ${LAST_THEME_COLOR} ${VIRTUALENV_THEME_PROMPT_COLOR})${THEME_PROMPT_SEPARATOR}${normal}$(set_rgb_color - ${VIRTUALENV_THEME_PROMPT_COLOR}) ${VIRTUALENV_CHAR}$environ ${normal}"
|
||||||
|
LAST_THEME_COLOR=${VIRTUALENV_THEME_PROMPT_COLOR}
|
||||||
else
|
else
|
||||||
VIRTUALENV_PROMPT=""
|
VIRTUALENV_PROMPT=""
|
||||||
fi
|
fi
|
||||||
|
|
@ -54,12 +75,30 @@ function powerline_scm_prompt {
|
||||||
|
|
||||||
if [[ "${SCM_NONE_CHAR}" != "${SCM_CHAR}" ]]; then
|
if [[ "${SCM_NONE_CHAR}" != "${SCM_CHAR}" ]]; then
|
||||||
if [[ "${SCM_DIRTY}" -eq 1 ]]; then
|
if [[ "${SCM_DIRTY}" -eq 1 ]]; then
|
||||||
SCM_PROMPT="$(set_rgb_color ${SCM_THEME_PROMPT_DIRTY_COLOR} ${SCM_THEME_PROMPT_COLOR})"
|
if [[ -n "${SCM_GIT_STAGED}" ]]; then
|
||||||
|
SCM_PROMPT="$(set_rgb_color ${SCM_THEME_PROMPT_STAGED_COLOR} ${SCM_THEME_PROMPT_COLOR})"
|
||||||
|
elif [[ -n "${SCM_GIT_UNSTAGED}" ]]; then
|
||||||
|
SCM_PROMPT="$(set_rgb_color ${SCM_THEME_PROMPT_UNSTAGED_COLOR} ${SCM_THEME_PROMPT_COLOR})"
|
||||||
|
else
|
||||||
|
SCM_PROMPT="$(set_rgb_color ${SCM_THEME_PROMPT_DIRTY_COLOR} ${SCM_THEME_PROMPT_COLOR})"
|
||||||
|
fi
|
||||||
else
|
else
|
||||||
SCM_PROMPT="$(set_rgb_color ${SCM_THEME_PROMPT_CLEAN_COLOR} ${SCM_THEME_PROMPT_COLOR})"
|
SCM_PROMPT="$(set_rgb_color ${SCM_THEME_PROMPT_CLEAN_COLOR} ${SCM_THEME_PROMPT_COLOR})"
|
||||||
fi
|
fi
|
||||||
[[ "${SCM_GIT_CHAR}" == "${SCM_CHAR}" ]] && SCM_PROMPT+=" ${SCM_CHAR}${SCM_BRANCH}${SCM_STATE}${SCM_GIT_BEHIND}${SCM_GIT_AHEAD}${SCM_GIT_STASH}"
|
if [[ "${SCM_GIT_CHAR}" == "${SCM_CHAR}" ]]; then
|
||||||
SCM_PROMPT="${SCM_PROMPT} ${normal}"
|
local tag=""
|
||||||
|
if [[ $SCM_IS_TAG -eq "1" ]]; then
|
||||||
|
tag=$SCM_TAG_PREFIX
|
||||||
|
fi
|
||||||
|
SCM_PROMPT+=" ${SCM_CHAR}${tag}${SCM_BRANCH}${SCM_STATE} "
|
||||||
|
[[ -n "${SCM_GIT_AHEAD}" ]] && SCM_PROMPT+="${SCM_GIT_AHEAD} "
|
||||||
|
[[ -n "${SCM_GIT_BEHIND}" ]] && SCM_PROMPT+="${SCM_GIT_BEHIND} "
|
||||||
|
[[ -n "${SCM_GIT_STAGED}" ]] && SCM_PROMPT+="${SCM_GIT_STAGED} "
|
||||||
|
[[ -n "${SCM_GIT_UNSTAGED}" ]] && SCM_PROMPT+="${SCM_GIT_UNSTAGED} "
|
||||||
|
[[ -n "${SCM_GIT_UNTRACKED}" ]] && SCM_PROMPT+="${SCM_GIT_UNTRACKED} "
|
||||||
|
[[ -n "${SCM_GIT_STASH}" ]] && SCM_PROMPT+="${SCM_GIT_STASH} "
|
||||||
|
fi
|
||||||
|
SCM_PROMPT="${SCM_PROMPT}${normal}"
|
||||||
else
|
else
|
||||||
SCM_PROMPT=""
|
SCM_PROMPT=""
|
||||||
fi
|
fi
|
||||||
|
|
|
||||||
|
|
@ -13,6 +13,10 @@ SCM_NONE_CHAR=""
|
||||||
SCM_GIT_CHAR=" "
|
SCM_GIT_CHAR=" "
|
||||||
SCM_GIT_BEHIND_CHAR="↓"
|
SCM_GIT_BEHIND_CHAR="↓"
|
||||||
SCM_GIT_AHEAD_CHAR="↑"
|
SCM_GIT_AHEAD_CHAR="↑"
|
||||||
|
SCM_GIT_UNTRACKED_CHAR="?:"
|
||||||
|
SCM_GIT_UNSTAGED_CHAR="U:"
|
||||||
|
SCM_GIT_STAGED_CHAR="S:"
|
||||||
|
|
||||||
if [[ -z "$THEME_SCM_TAG_PREFIX" ]]; then
|
if [[ -z "$THEME_SCM_TAG_PREFIX" ]]; then
|
||||||
SCM_TAG_PREFIX="tag > "
|
SCM_TAG_PREFIX="tag > "
|
||||||
else
|
else
|
||||||
|
|
@ -21,11 +25,12 @@ fi
|
||||||
|
|
||||||
SCM_THEME_PROMPT_CLEAN=""
|
SCM_THEME_PROMPT_CLEAN=""
|
||||||
SCM_THEME_PROMPT_DIRTY=""
|
SCM_THEME_PROMPT_DIRTY=""
|
||||||
|
|
||||||
SCM_THEME_PROMPT_COLOR=238
|
SCM_THEME_PROMPT_COLOR=238
|
||||||
SCM_THEME_PROMPT_CLEAN_COLOR=231
|
SCM_THEME_PROMPT_CLEAN_COLOR=231
|
||||||
SCM_THEME_PROMPT_DIRTY_COLOR=196
|
SCM_THEME_PROMPT_DIRTY_COLOR=196
|
||||||
SCM_THEME_PROMPT_STAGED_COLOR=220
|
SCM_THEME_PROMPT_STAGED_COLOR=220
|
||||||
SCM_THEME_PROMPT_UNTRACKED_COLOR=033
|
SCM_THEME_PROMPT_UNSTAGED_COLOR=166
|
||||||
|
|
||||||
CWD_THEME_PROMPT_COLOR=240
|
CWD_THEME_PROMPT_COLOR=240
|
||||||
|
|
||||||
|
|
@ -71,17 +76,13 @@ function powerline_virtualenv_prompt {
|
||||||
|
|
||||||
function powerline_scm_prompt {
|
function powerline_scm_prompt {
|
||||||
scm_prompt_vars
|
scm_prompt_vars
|
||||||
local git_status_output
|
|
||||||
git_status_output=$(git status 2> /dev/null )
|
|
||||||
|
|
||||||
if [[ "${SCM_NONE_CHAR}" != "${SCM_CHAR}" ]]; then
|
if [[ "${SCM_NONE_CHAR}" != "${SCM_CHAR}" ]]; then
|
||||||
if [[ "${SCM_DIRTY}" -eq 1 ]]; then
|
if [[ "${SCM_DIRTY}" -eq 1 ]]; then
|
||||||
if [ -n "$(echo $git_status_output | grep 'Changes not staged')" ]; then
|
if [[ -n "${SCM_GIT_STAGED}" ]]; then
|
||||||
SCM_PROMPT="$(set_rgb_color ${SCM_THEME_PROMPT_DIRTY_COLOR} ${SCM_THEME_PROMPT_COLOR})"
|
|
||||||
elif [ -n "$(echo $git_status_output | grep 'Changes to be committed')" ]; then
|
|
||||||
SCM_PROMPT="$(set_rgb_color ${SCM_THEME_PROMPT_STAGED_COLOR} ${SCM_THEME_PROMPT_COLOR})"
|
SCM_PROMPT="$(set_rgb_color ${SCM_THEME_PROMPT_STAGED_COLOR} ${SCM_THEME_PROMPT_COLOR})"
|
||||||
elif [ -n "$(echo $git_status_output | grep 'Untracked files')" ]; then
|
elif [[ -n "${SCM_GIT_UNSTAGED}" ]]; then
|
||||||
SCM_PROMPT="$(set_rgb_color ${SCM_THEME_PROMPT_UNTRACKED_COLOR} ${SCM_THEME_PROMPT_COLOR})"
|
SCM_PROMPT="$(set_rgb_color ${SCM_THEME_PROMPT_UNSTAGED_COLOR} ${SCM_THEME_PROMPT_COLOR})"
|
||||||
else
|
else
|
||||||
SCM_PROMPT="$(set_rgb_color ${SCM_THEME_PROMPT_DIRTY_COLOR} ${SCM_THEME_PROMPT_COLOR})"
|
SCM_PROMPT="$(set_rgb_color ${SCM_THEME_PROMPT_DIRTY_COLOR} ${SCM_THEME_PROMPT_COLOR})"
|
||||||
fi
|
fi
|
||||||
|
|
@ -93,9 +94,15 @@ function powerline_scm_prompt {
|
||||||
if [[ $SCM_IS_TAG -eq "1" ]]; then
|
if [[ $SCM_IS_TAG -eq "1" ]]; then
|
||||||
tag=$SCM_TAG_PREFIX
|
tag=$SCM_TAG_PREFIX
|
||||||
fi
|
fi
|
||||||
SCM_PROMPT+=" ${SCM_CHAR}${tag}${SCM_BRANCH}${SCM_STATE}${SCM_GIT_BEHIND}${SCM_GIT_AHEAD}${SCM_GIT_STASH}"
|
SCM_PROMPT+=" ${SCM_CHAR}${tag}${SCM_BRANCH}${SCM_STATE} "
|
||||||
|
[[ -n "${SCM_GIT_AHEAD}" ]] && SCM_PROMPT+="${SCM_GIT_AHEAD} "
|
||||||
|
[[ -n "${SCM_GIT_BEHIND}" ]] && SCM_PROMPT+="${SCM_GIT_BEHIND} "
|
||||||
|
[[ -n "${SCM_GIT_STAGED}" ]] && SCM_PROMPT+="${SCM_GIT_STAGED} "
|
||||||
|
[[ -n "${SCM_GIT_UNSTAGED}" ]] && SCM_PROMPT+="${SCM_GIT_UNSTAGED} "
|
||||||
|
[[ -n "${SCM_GIT_UNTRACKED}" ]] && SCM_PROMPT+="${SCM_GIT_UNTRACKED} "
|
||||||
|
[[ -n "${SCM_GIT_STASH}" ]] && SCM_PROMPT+="${SCM_GIT_STASH} "
|
||||||
fi
|
fi
|
||||||
SCM_PROMPT="$(set_rgb_color ${LAST_THEME_COLOR} ${SCM_THEME_PROMPT_COLOR})${THEME_PROMPT_SEPARATOR}${normal}${SCM_PROMPT} ${normal}"
|
SCM_PROMPT="$(set_rgb_color ${LAST_THEME_COLOR} ${SCM_THEME_PROMPT_COLOR})${THEME_PROMPT_SEPARATOR}${normal}${SCM_PROMPT}${normal}"
|
||||||
LAST_THEME_COLOR=${SCM_THEME_PROMPT_COLOR}
|
LAST_THEME_COLOR=${SCM_THEME_PROMPT_COLOR}
|
||||||
else
|
else
|
||||||
SCM_PROMPT=""
|
SCM_PROMPT=""
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue