2022-01-15 19:00:35 +09:00
|
|
|
#! bash oh-my-bash.module
|
2017-10-10 18:07:01 +07:00
|
|
|
SCM_GIT_CHAR="± "
|
|
|
|
SCM_HG_CHAR="☿ "
|
|
|
|
SCM_SVN_CHAR="⑆ "
|
|
|
|
SCM_NONE_CHAR=""
|
2022-01-24 14:55:36 +09:00
|
|
|
SCM_THEME_PROMPT_DIRTY=" ${_omb_prompt_brown}✗"
|
2022-01-19 16:52:15 +09:00
|
|
|
SCM_THEME_PROMPT_CLEAN=" ${_omb_prompt_bold_green}✓"
|
2017-10-10 18:07:01 +07:00
|
|
|
SCM_THEME_PROMPT_PREFIX="|"
|
lib, themes: Resolve conflicting variables
"lib" has used the variables "red", "green", "yellow", "blue", and
"purple" for outputting logs to stdout/stderr. On the other hand,
"themes" has used the same variables for including escape sequences in
PS1. These two sets of variables have different values, i.e., the
latter is enclosed by '\[' and '\]' and contains escaped '\e', which
means that there have been variable conflicts. In this commit, more
specific variables are used in these places to resolve the conflicts.
2022-01-19 17:23:35 +09:00
|
|
|
SCM_THEME_PROMPT_SUFFIX="${_omb_prompt_green}| "
|
|
|
|
SCM_GIT_AHEAD_CHAR="${_omb_prompt_green}+"
|
2022-01-24 14:55:36 +09:00
|
|
|
SCM_GIT_BEHIND_CHAR="${_omb_prompt_brown}-"
|
2017-10-10 18:07:01 +07:00
|
|
|
|
2022-01-24 14:55:36 +09:00
|
|
|
GIT_THEME_PROMPT_DIRTY=" ${_omb_prompt_bold_brown}✗"
|
2022-01-19 16:52:15 +09:00
|
|
|
GIT_THEME_PROMPT_CLEAN=" ${_omb_prompt_bold_green}✓"
|
2022-01-24 14:55:36 +09:00
|
|
|
GIT_THEME_PROMPT_PREFIX="${_omb_prompt_teal}|"
|
|
|
|
GIT_THEME_PROMPT_SUFFIX="${_omb_prompt_teal}| "
|
2017-10-10 18:07:01 +07:00
|
|
|
|
|
|
|
RVM_THEME_PROMPT_PREFIX="|"
|
|
|
|
RVM_THEME_PROMPT_SUFFIX="| "
|
|
|
|
|
|
|
|
VIRTUALENV_THEME_PROMPT_PREFIX="|"
|
|
|
|
VIRTUALENV_THEME_PROMPT_SUFFIX="| "
|
|
|
|
|
|
|
|
RBENV_THEME_PROMPT_PREFIX="|"
|
|
|
|
RBENV_THEME_PROMPT_SUFFIX="| "
|
|
|
|
|
|
|
|
RBFU_THEME_PROMPT_PREFIX="|"
|
|
|
|
RBFU_THEME_PROMPT_SUFFIX="| "
|
|
|
|
|
|
|
|
function git_prompt_info {
|
|
|
|
git_prompt_vars
|
|
|
|
echo -e "$SCM_PREFIX$SCM_BRANCH$SCM_STATE$SCM_GIT_AHEAD$SCM_GIT_BEHIND$SCM_GIT_STASH$SCM_SUFFIX"
|
|
|
|
}
|
|
|
|
|
|
|
|
LAST_PROMPT=""
|
2022-01-11 12:40:43 +09:00
|
|
|
function _omb_theme_PROMPT_COMMAND() {
|
2022-01-24 14:55:36 +09:00
|
|
|
local new_PS1="${_omb_prompt_bold_teal}$(scm_char)${_omb_prompt_olive}$(_omb_prompt_print_ruby_env)${_omb_prompt_green}\w $(scm_prompt_info)"
|
2017-10-10 18:07:01 +07:00
|
|
|
local new_prompt=$(PS1="$new_PS1" "$BASH" --norc -i </dev/null 2>&1 | sed -n '${s/^\(.*\)exit$/\1/p;}')
|
|
|
|
|
|
|
|
if [ "$LAST_PROMPT" = "$new_prompt" ]; then
|
|
|
|
new_PS1=""
|
|
|
|
else
|
|
|
|
LAST_PROMPT="$new_prompt"
|
|
|
|
fi
|
|
|
|
|
|
|
|
local wrap_char=""
|
|
|
|
[[ ${#new_PS1} -gt $(($COLUMNS/1)) ]] && wrap_char="\n"
|
lib, themes: Resolve conflicting variables
"lib" has used the variables "red", "green", "yellow", "blue", and
"purple" for outputting logs to stdout/stderr. On the other hand,
"themes" has used the same variables for including escape sequences in
PS1. These two sets of variables have different values, i.e., the
latter is enclosed by '\[' and '\]' and contains escaped '\e', which
means that there have been variable conflicts. In this commit, more
specific variables are used in these places to resolve the conflicts.
2022-01-19 17:23:35 +09:00
|
|
|
PS1="${new_PS1}${_omb_prompt_green}${wrap_char}→${_omb_prompt_reset_color} "
|
2017-10-10 18:07:01 +07:00
|
|
|
}
|
|
|
|
|
2022-01-11 12:40:43 +09:00
|
|
|
_omb_util_add_prompt_command _omb_theme_PROMPT_COMMAND
|