I have always had the red/green arrow/x as the marker for nonzero status code. This change just allows coloring of the SCM branch to show state, not require a separate symbol. New "worm" theme shows the way
parent
8c03cc4297
commit
4ad8280c31
|
|
@ -5,6 +5,8 @@ SCM_THEME_PROMPT_DIRTY=' ✗'
|
||||||
SCM_THEME_PROMPT_CLEAN=' ✓'
|
SCM_THEME_PROMPT_CLEAN=' ✓'
|
||||||
SCM_THEME_PROMPT_PREFIX=' |'
|
SCM_THEME_PROMPT_PREFIX=' |'
|
||||||
SCM_THEME_PROMPT_SUFFIX='|'
|
SCM_THEME_PROMPT_SUFFIX='|'
|
||||||
|
SCM_THEME_COLOR_CLEAN=''
|
||||||
|
SCM_THEME_COLOR_DIRTY=''
|
||||||
|
|
||||||
SCM_GIT='git'
|
SCM_GIT='git'
|
||||||
SCM_GIT_CHAR='±'
|
SCM_GIT_CHAR='±'
|
||||||
|
|
@ -72,10 +74,12 @@ function scm_prompt_info {
|
||||||
function git_prompt_vars {
|
function git_prompt_vars {
|
||||||
if [[ -n $(git status -s 2> /dev/null |grep -v ^# |grep -v "working directory clean") ]]; then
|
if [[ -n $(git status -s 2> /dev/null |grep -v ^# |grep -v "working directory clean") ]]; then
|
||||||
SCM_DIRTY=1
|
SCM_DIRTY=1
|
||||||
SCM_STATE=${GIT_THEME_PROMPT_DIRTY:-$SCM_THEME_PROMPT_DIRTY}
|
SCM_THEME_COLOR=${GIT_THEME_PROMPT_DIRTY:-$SCM_THEME_COLOR_DIRTY}
|
||||||
|
SCM_STATE=${GIT_THEME_PROMPT_DIRTY:-$SCM_THEME_PROMPT_DIRTY}
|
||||||
else
|
else
|
||||||
SCM_DIRTY=0
|
SCM_DIRTY=0
|
||||||
SCM_STATE=${GIT_THEME_PROMPT_CLEAN:-$SCM_THEME_PROMPT_CLEAN}
|
SCM_THEME_COLOR=${GIT_THEME_PROMPT_CLEAN:-$SCM_THEME_COLOR_CLEAN}
|
||||||
|
SCM_STATE=${GIT_THEME_PROMPT_CLEAN:-$SCM_THEME_PROMPT_CLEAN}
|
||||||
fi
|
fi
|
||||||
SCM_PREFIX=${GIT_THEME_PROMPT_PREFIX:-$SCM_THEME_PROMPT_PREFIX}
|
SCM_PREFIX=${GIT_THEME_PROMPT_PREFIX:-$SCM_THEME_PROMPT_PREFIX}
|
||||||
SCM_SUFFIX=${GIT_THEME_PROMPT_SUFFIX:-$SCM_THEME_PROMPT_SUFFIX}
|
SCM_SUFFIX=${GIT_THEME_PROMPT_SUFFIX:-$SCM_THEME_PROMPT_SUFFIX}
|
||||||
|
|
@ -87,9 +91,11 @@ function git_prompt_vars {
|
||||||
function svn_prompt_vars {
|
function svn_prompt_vars {
|
||||||
if [[ -n $(svn status 2> /dev/null) ]]; then
|
if [[ -n $(svn status 2> /dev/null) ]]; then
|
||||||
SCM_DIRTY=1
|
SCM_DIRTY=1
|
||||||
|
SCM_THEME_COLOR=${SVN_THEME_PROMPT_DIRTY:-$SCM_THEME_COLOR_DIRTY}
|
||||||
SCM_STATE=${SVN_THEME_PROMPT_DIRTY:-$SCM_THEME_PROMPT_DIRTY}
|
SCM_STATE=${SVN_THEME_PROMPT_DIRTY:-$SCM_THEME_PROMPT_DIRTY}
|
||||||
else
|
else
|
||||||
SCM_DIRTY=0
|
SCM_DIRTY=0
|
||||||
|
SCM_THEME_COLOR=${SVN_THEME_PROMPT_CLEAN:-$SCM_THEME_COLOR_CLEAN}
|
||||||
SCM_STATE=${SVN_THEME_PROMPT_CLEAN:-$SCM_THEME_PROMPT_CLEAN}
|
SCM_STATE=${SVN_THEME_PROMPT_CLEAN:-$SCM_THEME_PROMPT_CLEAN}
|
||||||
fi
|
fi
|
||||||
SCM_PREFIX=${SVN_THEME_PROMPT_PREFIX:-$SCM_THEME_PROMPT_PREFIX}
|
SCM_PREFIX=${SVN_THEME_PROMPT_PREFIX:-$SCM_THEME_PROMPT_PREFIX}
|
||||||
|
|
@ -101,9 +107,11 @@ function svn_prompt_vars {
|
||||||
function hg_prompt_vars {
|
function hg_prompt_vars {
|
||||||
if [[ -n $(hg status 2> /dev/null) ]]; then
|
if [[ -n $(hg status 2> /dev/null) ]]; then
|
||||||
SCM_DIRTY=1
|
SCM_DIRTY=1
|
||||||
|
SCM_THEME_COLOR=${HG_THEME_PROMPT_DIRTY:-$SCM_THEME_COLOR_DIRTY}
|
||||||
SCM_STATE=${HG_THEME_PROMPT_DIRTY:-$SCM_THEME_PROMPT_DIRTY}
|
SCM_STATE=${HG_THEME_PROMPT_DIRTY:-$SCM_THEME_PROMPT_DIRTY}
|
||||||
else
|
else
|
||||||
SCM_DIRTY=0
|
SCM_DIRTY=0
|
||||||
|
SCM_THEME_COLOR=${HG_THEME_PROMPT_DIRTY:-$SCM_THEME_COLOR_DIRTY}
|
||||||
SCM_STATE=${HG_THEME_PROMPT_CLEAN:-$SCM_THEME_PROMPT_CLEAN}
|
SCM_STATE=${HG_THEME_PROMPT_CLEAN:-$SCM_THEME_PROMPT_CLEAN}
|
||||||
fi
|
fi
|
||||||
SCM_PREFIX=${HG_THEME_PROMPT_PREFIX:-$SCM_THEME_PROMPT_PREFIX}
|
SCM_PREFIX=${HG_THEME_PROMPT_PREFIX:-$SCM_THEME_PROMPT_PREFIX}
|
||||||
|
|
@ -146,17 +154,17 @@ function virtualenv_prompt {
|
||||||
# backwards-compatibility
|
# backwards-compatibility
|
||||||
function git_prompt_info {
|
function git_prompt_info {
|
||||||
git_prompt_vars
|
git_prompt_vars
|
||||||
echo -e "$SCM_PREFIX$SCM_BRANCH$SCM_STATE$SCM_SUFFIX"
|
echo -e "$SCM_PREFIX$SCM_THEME_COLOR$SCM_BRANCH$SCM_STATE$SCM_SUFFIX"
|
||||||
}
|
}
|
||||||
|
|
||||||
function svn_prompt_info {
|
function svn_prompt_info {
|
||||||
svn_prompt_vars
|
svn_prompt_vars
|
||||||
echo -e "$SCM_PREFIX$SCM_BRANCH$SCM_STATE$SCM_SUFFIX"
|
echo -e "$SCM_PREFIX$SCM_THEME_COLOR$SCM_BRANCH$SCM_STATE$SCM_SUFFIX"
|
||||||
}
|
}
|
||||||
|
|
||||||
function hg_prompt_info() {
|
function hg_prompt_info() {
|
||||||
hg_prompt_vars
|
hg_prompt_vars
|
||||||
echo -e "$SCM_PREFIX$SCM_BRANCH:${SCM_CHANGE#*:}$SCM_STATE$SCM_SUFFIX"
|
echo -e "$SCM_PREFIX$SCM_THEME_COLOR$SCM_BRANCH:${SCM_CHANGE#*:}$SCM_STATE$SCM_SUFFIX"
|
||||||
}
|
}
|
||||||
|
|
||||||
function scm_char {
|
function scm_char {
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,17 @@
|
||||||
|
#!/usr/bin/env bash
|
||||||
|
SCM_THEME_PROMPT_DIRTY=""
|
||||||
|
SCM_THEME_PROMPT_CLEAN=""
|
||||||
|
SCM_THEME_COLOR_DIRTY="${bold_red}"
|
||||||
|
SCM_THEME_COLOR_CLEAN="${green}"
|
||||||
|
SCM_THEME_PROMPT_PREFIX=" ${white}("
|
||||||
|
SCM_THEME_PROMPT_SUFFIX="${white})"
|
||||||
|
|
||||||
|
SUCCESS_PROMPT="${bold_green}→"
|
||||||
|
ERROR_PROMPT="${bold_red}✗"
|
||||||
|
|
||||||
|
function prompt_command() {
|
||||||
|
if [ $? = 0 ]; then RESULT_PROMPT=$SUCCESS_PROMPT; else RESULT_PROMPT=$ERROR_PROMPT; fi
|
||||||
|
PS1="${bold_cyan}\u@\h ${bold_blue}\w${reset_color}$(scm_prompt_info) $RESULT_PROMPT${normal} ";
|
||||||
|
}
|
||||||
|
|
||||||
|
PROMPT_COMMAND=prompt_command;
|
||||||
Loading…
Reference in New Issue