Files
bash-it/themes/doubletime/doubletime.theme.bash
Jeff Carouth 6e8733ea98 Adding multiple SCM support to doubletime theme.
The doubletime theme improves the SCM status prompt for git.
However, it accomplishes this at the expense of other SCM
systems. This delegates prompt to the default bash-it prompt
function when the SCM is not git.
2011-06-25 10:05:25 -05:00

87 lines
2.2 KiB
Bash

#!/bin/bash
SCM_THEME_PROMPT_DIRTY=''
SCM_THEME_PROMPT_CLEAN=''
SCM_GIT_CHAR="${bold_cyan}±${normal}"
SCM_SVN_CHAR="${bold_cyan}${normal}"
SCM_HG_CHAR="${bold_red}${normal}"
SCM_THEME_PROMPT_PREFIX=""
SCM_THEME_PROMPT_SUFFIX=""
RVM_THEME_PROMPT_PREFIX=" ("
RVM_THEME_PROMPT_SUFFIX=")"
if [ ! -z $THEME_PROMPT_HOST_COLOR ]; then
THEME_PROMPT_HOST_COLOR=$(eval echo $`echo ${THEME_PROMPT_HOST_COLOR}`);
else
THEME_PROMPT_HOST_COLOR="$blue"
fi
doubletime_scm_prompt() {
CHAR=$(scm_char)
if [ $CHAR = $SCM_NONE_CHAR ]; then
return
elif [ $CHAR = $SCM_GIT_CHAR ]; then
echo "$(git_prompt_status)"
else
echo "[$(scm_prompt_info)]"
fi
}
virtualenv_prompt() {
if [ ! -z "$VIRTUAL_ENV" ]
then
echo "(`basename $VIRTUAL_ENV`) "
fi
}
function prompt_setter() {
# Save history
history -a
history -c
history -r
if [[ -z "$THEME_PROMPT_CLOCK_FORMAT" ]]
then
clock="\t"
else
clock=$THEME_PROMPT_CLOCK_FORMAT
fi
PS1="
$clock $(scm_char) [$THEME_PROMPT_HOST_COLOR\u@${THEME_PROMPT_HOST}$reset_color] $(virtualenv_prompt)\w
$(doubletime_scm_prompt)$reset_color $ "
PS2='> '
PS4='+ '
}
PROMPT_COMMAND=prompt_setter
git_prompt_status() {
if [ -n "$(git status | grep 'Changes not staged' 2> /dev/null)" ]; then
git_status="${bold_red}$(scm_prompt_info)"
elif [ -n "$(git status | grep 'Changes to be committed' 2> /dev/null)" ]; then
git_status="${bold_yellow}$(scm_prompt_info) ^"
elif [ -n "$(git status | grep 'Untracked files' 2> /dev/null)" ]; then
git_status="${bold_cyan}$(scm_prompt_info) +"
elif [ -n "$(git status | grep 'nothing to commit' 2> /dev/null)" ]; then
git_status="${bold_green}$(scm_prompt_info) ${green}"
else
git_status="$(scm_prompt_info)"
fi
echo "[$git_status${normal}]"
}
# git_prompt_color() {
#
# if [ -n "$(git status | grep 'Changes not staged' 2> /dev/null)" ]; then
# git_status='${bold_red} ✗'
# elif [ -n "$(git status | grep 'Changes to be committed' 2> /dev/null)" ]; then
# git_status='${bold_yellow} ^'
# elif [ -n "$(git status | grep 'Untracked files' 2> /dev/null)" ]; then
# git_status='${bold_cyan} +'
# else
# git_status='${bold_green} ✓'
# fi
# echo $git_status
#
# }