From 759bcc6b3e79a50a7545ddb10c7467f1dc8cf2ef Mon Sep 17 00:00:00 2001 From: Eduardo Bellido Bellido Date: Tue, 11 Feb 2014 22:29:30 +0100 Subject: [PATCH] Added more Git repository info to Powerline theme --- themes/powerline/powerline.theme.bash | 31 +++++++++++++++++---------- 1 file changed, 20 insertions(+), 11 deletions(-) diff --git a/themes/powerline/powerline.theme.bash b/themes/powerline/powerline.theme.bash index 518f054c..f63978f5 100644 --- a/themes/powerline/powerline.theme.bash +++ b/themes/powerline/powerline.theme.bash @@ -13,13 +13,18 @@ SCM_NONE_CHAR="" SCM_GIT_CHAR=" " SCM_GIT_BEHIND_CHAR="↓" SCM_GIT_AHEAD_CHAR="↑" +SCM_GIT_UNTRACKED_CHAR="?:" +SCM_GIT_UNSTAGED_CHAR="U:" +SCM_GIT_STAGED_CHAR="S:" + SCM_THEME_PROMPT_CLEAN="" SCM_THEME_PROMPT_DIRTY="" + SCM_THEME_PROMPT_COLOR=238 SCM_THEME_PROMPT_CLEAN_COLOR=231 -SCM_THEME_PROMPT_DIRTY_COLOR=196 +SCM_THEME_PROMPT_DIRTY_COLOR=160 SCM_THEME_PROMPT_STAGED_COLOR=220 -SCM_THEME_PROMPT_UNTRACKED_COLOR=033 +SCM_THEME_PROMPT_UNSTAGED_COLOR=166 CWD_THEME_PROMPT_COLOR=240 @@ -58,25 +63,29 @@ function powerline_virtualenv_prompt { function powerline_scm_prompt { scm_prompt_vars - local git_status_output - git_status_output=$(git status 2> /dev/null ) if [[ "${SCM_NONE_CHAR}" != "${SCM_CHAR}" ]]; then if [[ "${SCM_DIRTY}" -eq 1 ]]; then - if [ -n "$(echo $git_status_output | grep 'Changes not 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 + if [[ -n "${SCM_GIT_STAGED}" ]]; then SCM_PROMPT="$(set_rgb_color ${SCM_THEME_PROMPT_STAGED_COLOR} ${SCM_THEME_PROMPT_COLOR})" - elif [ -n "$(echo $git_status_output | grep 'Untracked files')" ]; then - SCM_PROMPT="$(set_rgb_color ${SCM_THEME_PROMPT_UNTRACKED_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 SCM_PROMPT="$(set_rgb_color ${SCM_THEME_PROMPT_CLEAN_COLOR} ${SCM_THEME_PROMPT_COLOR})" fi - [[ "${SCM_GIT_CHAR}" == "${SCM_CHAR}" ]] && SCM_PROMPT+=" ${SCM_CHAR}${SCM_BRANCH}${SCM_STATE}${SCM_GIT_BEHIND}${SCM_GIT_AHEAD}${SCM_GIT_STASH}" - SCM_PROMPT="$(set_rgb_color ${LAST_THEME_COLOR} ${SCM_THEME_PROMPT_COLOR})${THEME_PROMPT_SEPARATOR}${normal}${SCM_PROMPT} ${normal}" + if [[ "${SCM_GIT_CHAR}" == "${SCM_CHAR}" ]]; then + SCM_PROMPT+=" ${SCM_CHAR}${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="$(set_rgb_color ${LAST_THEME_COLOR} ${SCM_THEME_PROMPT_COLOR})${THEME_PROMPT_SEPARATOR}${normal}${SCM_PROMPT}${normal}" LAST_THEME_COLOR=${SCM_THEME_PROMPT_COLOR} else SCM_PROMPT=""