Add ability for themes to specify that you're viewing a tag along with Powerline...
authorTravis Swicegood <development@domain51.com>
Tue, 1 Apr 2014 15:41:00 +0000 (10:41 -0500)
committerTravis Swicegood <development@domain51.com>
Tue, 1 Apr 2014 15:41:00 +0000 (10:41 -0500)
themes/base.theme.bash
themes/powerline/powerline.theme.bash

index 3a37ce8..157f088 100644 (file)
@@ -83,7 +83,18 @@ function git_prompt_vars {
   fi
   SCM_PREFIX=${GIT_THEME_PROMPT_PREFIX:-$SCM_THEME_PROMPT_PREFIX}
   SCM_SUFFIX=${GIT_THEME_PROMPT_SUFFIX:-$SCM_THEME_PROMPT_SUFFIX}
-  SCM_BRANCH=$(git symbolic-ref -q --short HEAD || git describe --tags --exact-match 2> /dev/null)
+
+  local ref=$(git symbolic-ref -q --short HEAD 2> /dev/null)
+  if [[ -n "$ref" ]]; then
+    SCM_BRANCH=$ref
+    SCM_IS_BRANCH=1
+    SCM_IS_TAG=0
+  else
+    SCM_BRANCH=$(git describe --tags --exact-match 2> /dev/null)
+    SCM_IS_TAG=1
+    SCM_IS_BRANCH=0
+  fi
+  # SCM_BRANCH=$(git symbolic-ref -q --short HEAD || git describe --tags --exact-match 2> /dev/null)
   SCM_CHANGE=$(git rev-parse HEAD 2>/dev/null)
   local ahead_re='.+ahead ([0-9]+).+'
   local behind_re='.+behind ([0-9]+).+'
index 518f054..81598de 100644 (file)
@@ -13,6 +13,12 @@ SCM_NONE_CHAR=""
 SCM_GIT_CHAR="\e0a0 "
 SCM_GIT_BEHIND_CHAR="↓"
 SCM_GIT_AHEAD_CHAR="↑"
+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_DIRTY=""
 SCM_THEME_PROMPT_COLOR=238
@@ -75,7 +81,13 @@ function powerline_scm_prompt {
         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}"
+        if [[ "${SCM_GIT_CHAR}" == "${SCM_CHAR}" ]]; then
+            local tag=""
+            if [[ $SCM_IS_TAG -eq "1" ]]; then
+                tag=$SCM_TAG_PREFIX
+            fi
+            SCM_PROMPT+=" ${SCM_CHAR}${tag}${SCM_BRANCH}${SCM_STATE}${SCM_GIT_BEHIND}${SCM_GIT_AHEAD}${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