themes/base: Refactor prompt info for ruby envs

This commit is contained in:
Koichi Murase
2021-12-28 07:34:53 +09:00
parent c4ef72505b
commit d59c91bc35
18 changed files with 158 additions and 142 deletions

View File

@@ -13,7 +13,7 @@ RVM_THEME_PROMPT_PREFIX="|"
RVM_THEME_PROMPT_SUFFIX="|"
function prompt_command() {
#PS1="${bold_cyan}$(scm_char)${green}$(scm_prompt_info)${purple}$(ruby_version_prompt) ${yellow}\h ${reset_color}in ${green}\w ${reset_color}\n${green}→${reset_color} "
#PS1="${bold_cyan}$(scm_char)${green}$(scm_prompt_info)${purple}$(_omb_prompt_print_ruby_env) ${yellow}\h ${reset_color}in ${green}\w ${reset_color}\n${green}→${reset_color} "
#PS1="\n${purple}\h: ${reset_color} ${green}\w\n${bold_cyan}$(scm_char)${green}$(scm_prompt_info) ${green}→${reset_color} "
#PS1="\n${cyan}\h: ${reset_color} ${yellow}\w\n${red}$(scm_char)${red}$(scm_prompt_info) ${green}→${reset_color} "
PS1="\n${cyan}\h: ${reset_color} ${yellow}\w ${green}$(scm_prompt_info)\n${reset_color}"

View File

@@ -49,13 +49,31 @@ SCM_SVN_CHAR='⑆'
SCM_NONE='NONE'
SCM_NONE_CHAR='○'
RVM_THEME_PROMPT_PREFIX=' |'
RVM_THEME_PROMPT_SUFFIX='|'
THEME_SHOW_USER_HOST=${THEME_SHOW_USER_HOST:=false}
USER_HOST_THEME_PROMPT_PREFIX=''
USER_HOST_THEME_PROMPT_SUFFIX=''
# #new
# OMB_PROMPT_RBFU_FORMAT=' |%s|'
# OMB_PROMPT_RBENV_FORMAT=' |%s|'
# OMB_PROMPT_RVM_FORMAT=' |%s|'
# OMB_PROMPT_CHRUBY_FORMAT=' |%s|'
# deprecate
RBFU_THEME_PROMPT_PREFIX=' |'
RBFU_THEME_PROMPT_SUFFIX='|'
RBENV_THEME_PROMPT_PREFIX=' |'
RBENV_THEME_PROMPT_SUFFIX='|'
RVM_THEME_PROMPT_PREFIX=' |'
RVM_THEME_PROMPT_SUFFIX='|'
CHRUBY_THEME_PROMPT_PREFIX=' |'
CHRUBY_THEME_PROMPT_SUFFIX='|'
# # new
# OMB_PROMPT_VIRTUALENV_FORMAT=' |%s|'
# OMB_PROMPT_CONDAENV_FORMAT=' |%s|'
# OMB_PROMPT_PYTHON_VERSION_FORMAT=' |%s|'
# deprecate
VIRTUALENV_THEME_PROMPT_PREFIX=' |'
VIRTUALENV_THEME_PROMPT_SUFFIX='|'
@@ -64,16 +82,21 @@ CONDAENV_THEME_PROMPT_SUFFIX='|'
PYTHON_THEME_PROMPT_PREFIX=' |'
PYTHON_THEME_PROMPT_SUFFIX='|'
# # new
# OMB_THEME_PROMPT_VIRTUALENV_FORMAT=' |%s|'
# OMB_THEME_PROMPT_CONDAENV_FORMAT=' |%s|'
# OMB_THEME_PROMPT_PYTHON_VERSION_FORMAT=' |%s|'
RBENV_THEME_PROMPT_PREFIX=' |'
RBENV_THEME_PROMPT_SUFFIX='|'
RBFU_THEME_PROMPT_PREFIX=' |'
RBFU_THEME_PROMPT_SUFFIX='|'
## @fn __omb_prompt_construct_format var value fmt_prefix[:deprecated]
## @param[in] var
## @param[in] value
## @param[in] fmt_prefix
## @param[in,opt] deprecated
## @var[out] $var
function _omb_prompt_format {
local __format=${3%%:*}_FORMAT; __format=${!__format-}
if [[ ! $__format ]]; then
local __prefix=${3#*:}_PREFIX; __prefix=${!__prefix-} # deprecate name
local __suffix=${3#*:}_SUFFIX; __suffix=${!__suffix-} # deprecate name
__format=${__prefix//'%'/'%%'}%s${__suffix//'%'/'%%'}
fi
printf -v "$1" "$__format" "$2"
}
function scm {
if [[ "$SCM_CHECK" = false ]]; then SCM=$SCM_NONE
@@ -351,75 +374,92 @@ function hg_prompt_vars {
fi
}
function rvm_version_prompt {
if which rvm &> /dev/null; then
rvm=$(rvm-prompt) || return
if [ -n "$rvm" ]; then
echo -e "$RVM_THEME_PROMPT_PREFIX$rvm$RVM_THEME_PROMPT_SUFFIX"
fi
function _omb_prompt_get_rbfu {
rbfu=$RBFU_RUBY_VERSION
[[ $rbfu ]] || return 1
_omb_prompt_format rbfu "$rbfu" OMB_PROMPT_RBFU:RBFU_THEME_PROMPT
}
function _omb_prompt_get_rbenv {
rbenv=
_omb_util_command_exists rbenv || return 1
rbenv=$(rbenv version-name)
rbenv commands | command grep -q gemset &&
gemset=$(rbenv gemset active 2> /dev/null) &&
rbenv="$rbenv@${gemset%% *}"
[[ $rbenv != system ]] || return 1
_omb_prompt_format rbenv "$rbenv" OMB_PROMPT_RBENV:RBENV_THEME_PROMPT
}
function _omb_prompt_get_rvm {
rvm=
if _omb_util_command_exists rvm-prompt; then
rvm=$(rvm-prompt)
elif _omb_util_command_exists rvm; then
local rvm_current=$(rvm tools identifier)
local rvm_default=$(rvm strings default)
[[ $rvm_current && $rvm_default && $rvm_current != "$rvm_default" ]] || return 1
rvm=$rvm_current
fi
[[ $rvm ]] || return 1
_omb_prompt_format rvm "$rvm" OMB_PROMPT_RVM:RVM_THEME_PROMPT
}
function rbenv_version_prompt {
if which rbenv &> /dev/null; then
rbenv=$(rbenv version-name) || return
$(rbenv commands | grep -q gemset) && gemset=$(rbenv gemset active 2> /dev/null) && rbenv="$rbenv@${gemset%% *}"
if [ $rbenv != "system" ]; then
echo -e "$RBENV_THEME_PROMPT_PREFIX$rbenv$RBENV_THEME_PROMPT_SUFFIX"
fi
fi
function _omb_prompt_get_chruby {
chruby=
_omb_util_function_exists chruby || return 1
_omb_util_function_exists chruby_auto && chruby=$(chruby_auto)
local ruby_version
ruby_version=$(ruby --version | command awk '{print $1, $2;}') || return
chruby | command grep -q '\*' || ruby_version="${ruby_version} (system)"
_omb_prompt_format ruby_version "$ruby_version" OMB_PROMPT_CHRUBY:CHRUBY_THEME_PROMPT
chruby+=$ruby_version
}
function rbfu_version_prompt {
if [[ $RBFU_RUBY_VERSION ]]; then
echo -e "${RBFU_THEME_PROMPT_PREFIX}${RBFU_RUBY_VERSION}${RBFU_THEME_PROMPT_SUFFIX}"
fi
function _omb_prompt_get_ruby_env {
local rbfu rbenv rvm chruby
_omb_prompt_get_rbfu
_omb_prompt_get_rbenv
_omb_prompt_get_rvm
_omb_prompt_get_chruby
ruby_env=$rbfu$rbenv$rvm$chruby
[[ $ruby_env ]]
}
function chruby_version_prompt {
if declare -f -F chruby &> /dev/null; then
if declare -f -F chruby_auto &> /dev/null; then
chruby_auto
fi
_omb_util_defun_print _omb_prompt_{print,get}_rbfu rbfu
_omb_util_defun_print _omb_prompt_{print,get}_rbenv rbenv
_omb_util_defun_print _omb_prompt_{print,get}_rvm rvm
_omb_util_defun_print _omb_prompt_{print,get}_chruby chruby
_omb_util_defun_print _omb_prompt_{print,get}_ruby_env ruby_env
ruby_version=$(ruby --version | awk '{print $1, $2;}') || return
if [[ ! $(chruby | grep '*') ]]; then
ruby_version="${ruby_version} (system)"
fi
echo -e "${CHRUBY_THEME_PROMPT_PREFIX}${ruby_version}${CHRUBY_THEME_PROMPT_SUFFIX}"
fi
}
function ruby_version_prompt {
echo -e "$(rbfu_version_prompt)$(rbenv_version_prompt)$(rvm_version_prompt)$(chruby_version_prompt)"
}
_omb_util_defun_deprecate 20000 rbfu_version_prompt _omb_prompt_print_rbfu
_omb_util_defun_deprecate 20000 rbenv_version_prompt _omb_prompt_print_rbenv
_omb_util_defun_deprecate 20000 rvm_version_prompt _omb_prompt_print_rvm
_omb_util_defun_deprecate 20000 chruby_version_prompt _omb_prompt_print_chruby
_omb_util_defun_deprecate 20000 ruby_version_prompt _omb_prompt_print_ruby_env
function _omb_prompt_get_virtualenv {
virtualenv=
[[ ${VIRTUAL_ENV-} ]] || return 1
local prefix=${VIRTUALENV_THEME_PROMPT_PREFIX-}
local suffix=${VIRTUALENV_THEME_PROMPT_SUFFIX-}
local format=${OMB_THEME_PROMPT_VIRTUALENV_FORMAT-${prefix//'%'/'%%'}%s${suffix//'%'/'%%'}}
printf -v virtualenv "$format" "$(basename "$VIRTUAL_ENV")"
_omb_prompt_format virtualenv "$(basename "$VIRTUAL_ENV")" OMB_PROMPT_VIRTUALENV:VIRTUALENV_THEME_PROMPT
}
function _omb_prompt_get_condaenv {
condaenv=
[[ ${CONDA_DEFAULT_ENV-} ]] || return 1
local prefix=${CONDAENV_THEME_PROMPT_PREFIX-}
local suffix=${CONDAENV_THEME_PROMPT_SUFFIX-}
local format=${OMB_THEME_PROMPT_CONDAENV_FORMAT-${prefix//'%'/'%%'}%s${suffix//'%'/'%%'}}
printf -v condaenv "$format" "$CONDA_DEFAULT_ENV"
_omb_prompt_format condaenv "$CONDA_DEFAULT_ENV" OMB_PROMPT_CONDAENV:CONDAENV_THEME_PROMPT
}
function _omb_prompt_get_python_version {
python_version=$(python --version 2>&1 | command awk '{print "py-"$2;}')
[[ $python_version ]] || return 1
local prefix=${PYTHON_THEME_PROMPT_PREFIX-}
local suffix=${PYTHON_THEME_PROMPT_SUFFIX-}
local format=${OMB_THEME_PROMPT_PYTHON_VERSION_FORMAT-${prefix//'%'/'%%'}%s${suffix//'%'/'%%'}}
printf -v python_version "$format" "$python_version"
_omb_prompt_format python_version "$python_version" OMB_PROMPT_PYTHON_VERSION:PYTHON_THEME_PROMPT
}
function _omb_prompt_get_python_venv {
@@ -543,9 +583,7 @@ function aws_profile {
# Returns true if $1 is a shell function.
fn_exists() {
type $1 | grep -q 'shell function'
}
_omb_util_defun_deprecate 20000 fn_exists _omb_util_function_exists
function safe_append_prompt_command {
local prompt_re
@@ -560,8 +598,8 @@ function safe_append_prompt_command {
fi
# See if we need to use the overriden version
if [[ $(fn_exists function append_prompt_command_override) ]]; then
append_prompt_command_override $1
if _omb_util_function_exists append_prompt_command_override; then
append_prompt_command_override "$1"
return
fi

View File

@@ -12,7 +12,7 @@ GIT_THEME_PROMPT_SUFFIX="${green}|"
CONDAENV_THEME_PROMPT_SUFFIX="|"
function prompt_command() {
#PS1="${bold_cyan}$(scm_char)${green}$(scm_prompt_info)${purple}$(ruby_version_prompt) ${yellow}\h ${reset_color}in ${green}\w ${reset_color}\n${green}→${reset_color} "
#PS1="${bold_cyan}$(scm_char)${green}$(scm_prompt_info)${purple}$(_omb_prompt_print_ruby_env) ${yellow}\h ${reset_color}in ${green}\w ${reset_color}\n${green}→${reset_color} "
PS1="\n${yellow}$(python_version_prompt) ${purple}\h ${reset_color}in ${green}\w\n${bold_cyan}$(scm_char)${green}$(scm_prompt_info) ${green}${reset_color} "
}

View File

@@ -22,8 +22,8 @@ __bobby_clock() {
}
function prompt_command() {
#PS1="${bold_cyan}$(scm_char)${green}$(scm_prompt_info)${purple}$(ruby_version_prompt) ${yellow}\h ${reset_color}in ${green}\w ${reset_color}\n${green}→${reset_color} "
PS1="\n$(battery_char) $(__bobby_clock)${yellow}$(ruby_version_prompt) ${purple}\h ${reset_color}in ${green}\w\n${bold_cyan}$(scm_prompt_char_info) ${green}${reset_color} "
#PS1="${bold_cyan}$(scm_char)${green}$(scm_prompt_info)${purple}$(_omb_prompt_print_ruby_env) ${yellow}\h ${reset_color}in ${green}\w ${reset_color}\n${green}→${reset_color} "
PS1="\n$(battery_char) $(__bobby_clock)${yellow}$(_omb_prompt_print_ruby_env) ${purple}\h ${reset_color}in ${green}\w\n${bold_cyan}$(scm_prompt_char_info) ${green}${reset_color} "
}
THEME_SHOW_CLOCK_CHAR=${THEME_SHOW_CLOCK_CHAR:-"true"}

View File

@@ -130,7 +130,7 @@ ___brainy_prompt_ruby() {
[ "${THEME_SHOW_RUBY}" != "true" ] && return
color=$bold_white
box="[|]"
info="rb-$(ruby_version_prompt)"
info="rb-$(_omb_prompt_print_ruby_env)"
printf "%s|%s|%s|%s" "${color}" "${info}" "${bold_red}" "${box}"
}

View File

@@ -12,22 +12,13 @@ SCM_THEME_PROMPT_SUFFIX=""
GIT_SHA_PREFIX="${blue}"
GIT_SHA_SUFFIX="${reset_color}"
function rvm_version_prompt {
if which rvm &> /dev/null; then
rvm=$(rvm-prompt) || return
if [ -n "$rvm" ]; then
echo -e "$rvm"
fi
fi
}
function git_short_sha() {
SHA=$(git rev-parse --short HEAD 2> /dev/null) && echo "$GIT_SHA_PREFIX$SHA$GIT_SHA_SUFFIX"
}
function prompt() {
local return_status=""
local ruby="${red}$(ruby_version_prompt)${reset_color}"
local ruby="${red}$(_omb_prompt_print_ruby_env)${reset_color}"
local user_host="${green}\h @ \w${reset_color}"
local git_branch="$(git_short_sha)${cyan}$(scm_prompt_info)${reset_color}"
local prompt_symbol=' '

View File

@@ -45,7 +45,7 @@ function prompt_setter() {
history -c
history -r
PS1="
$(clock_prompt) $(scm_char) [${THEME_PROMPT_HOST_COLOR}\u@${THEME_PROMPT_HOST}$reset_color] $(_omb_prompt_print_python_venv)$(ruby_version_prompt)\w
$(clock_prompt) $(scm_char) [${THEME_PROMPT_HOST_COLOR}\u@${THEME_PROMPT_HOST}$reset_color] $(_omb_prompt_print_python_venv)$(_omb_prompt_print_ruby_env)\w
$(doubletime_scm_prompt)$reset_color $ "
PS2='> '
PS4='+ '

View File

@@ -8,7 +8,7 @@ function prompt_setter() {
history -c
history -r
PS1="
$(clock_prompt) $(scm_char) [$THEME_PROMPT_HOST_COLOR\u@${THEME_PROMPT_HOST}$reset_color] $(_omb_prompt_print_python_venv)$(ruby_version_prompt)
$(clock_prompt) $(scm_char) [$THEME_PROMPT_HOST_COLOR\u@${THEME_PROMPT_HOST}$reset_color] $(_omb_prompt_print_python_venv)$(_omb_prompt_print_ruby_env)
\w
$(doubletime_scm_prompt)$reset_color $ "
PS2='> '

View File

@@ -10,7 +10,7 @@ GIT_THEME_PROMPT_PREFIX=" ${green}|"
GIT_THEME_PROMPT_SUFFIX="${green}|"
function prompt_command() {
PS1="\n${yellow}$(ruby_version_prompt) ${purple}\h ${reset_color}in ${green}\w\n${bold_cyan}$(scm_char)${green}$(scm_prompt_info) ${green}${reset_color} "
PS1="\n${yellow}$(_omb_prompt_print_ruby_env) ${purple}\h ${reset_color}in ${green}\w\n${bold_cyan}$(scm_char)${green}$(scm_prompt_info) ${green}${reset_color} "
}
safe_append_prompt_command prompt_command

View File

@@ -84,7 +84,7 @@ IP_SEPARATOR=', '
# FUNCS =======================================================================
function get_ip_info {
myip=$(curl -s checkip.dyndns.org | grep -Eo '[0-9\.]+')
local myip=$(curl -s checkip.dyndns.org | grep -Eo '[0-9\.]+')
echo -e "$(ips | sed -e :a -e '$!N;s/\n/${IP_SEPARATOR}/;ta' | sed -e 's/127\.0\.0\.1\${IP_SEPARATOR}//g'), ${myip}"
}
@@ -98,22 +98,20 @@ function ip_prompt_info() {
# Displays virtual info prompt (virtualenv/rvm)
function virtual_prompt_info() {
local python_venv; _omb_prompt_get_python_venv
local rvm_info=$(ruby_version_prompt)
local ruby_env; _omb_prompt_get_ruby_env
local virtual_prompt=""
local prefix=${VIRTUAL_THEME_PROMPT_PREFIX}
local suffix=${VIRTUAL_THEME_PROMPT_SUFFIX}
# If no virtual info, just return
[[ -z "$python_venv" && -z "$rvm_info" ]] && return
[[ $python_venv$ruby_env ]] || return
# If virtual_env info present, append to prompt
[[ -n "$python_venv" ]] && virtual_prompt="virtualenv: ${VE_COLOR}$python_venv${DEFAULT_COLOR}"
[[ $python_venv ]] && virtual_prompt="virtualenv: ${VE_COLOR}$python_venv${DEFAULT_COLOR}"
if [[ -n "$rvm_info" ]]
then
[[ -n "$python_venv" ]] && virtual_prompt="$virtual_prompt, "
virtual_prompt="${virtual_prompt}rvm: ${RVM_COLOR}$rvm_info${DEFAULT_COLOR}"
if [[ $ruby_env ]]; then
virtual_prompt="${virtual_prompt:+$virtual_prompt, }rvm: ${RVM_COLOR}$ruby_env${DEFAULT_COLOR}"
fi
echo -e "$prefix$virtual_prompt$suffix"
}
@@ -121,14 +119,14 @@ function virtual_prompt_info() {
# Parse git info
function git_prompt_info() {
if [[ -n $(git status -s 2> /dev/null |grep -v ^# |grep -v "working directory clean") ]]; then
state=${GIT_THEME_PROMPT_DIRTY:-$SCM_THEME_PROMPT_DIRTY}
local state=${GIT_THEME_PROMPT_DIRTY:-$SCM_THEME_PROMPT_DIRTY}
else
state=${GIT_THEME_PROMPT_CLEAN:-$SCM_THEME_PROMPT_CLEAN}
local state=${GIT_THEME_PROMPT_CLEAN:-$SCM_THEME_PROMPT_CLEAN}
fi
prefix=${GIT_THEME_PROMPT_PREFIX:-$SCM_THEME_PROMPT_PREFIX}
suffix=${GIT_THEME_PROMPT_SUFFIX:-$SCM_THEME_PROMPT_SUFFIX}
ref=$(git symbolic-ref HEAD 2> /dev/null) || return
commit_id=$(git rev-parse HEAD 2>/dev/null) || return
local prefix=${GIT_THEME_PROMPT_PREFIX:-$SCM_THEME_PROMPT_PREFIX}
local suffix=${GIT_THEME_PROMPT_SUFFIX:-$SCM_THEME_PROMPT_SUFFIX}
local ref=$(git symbolic-ref HEAD 2> /dev/null) || return
local commit_id=$(git rev-parse HEAD 2>/dev/null) || return
echo -e "$prefix${REF_COLOR}${ref#refs/heads/}${DEFAULT_COLOR}:${commit_id:0:$MAX_GIT_HEX_LENGTH}$state$suffix"
}
@@ -136,14 +134,14 @@ function git_prompt_info() {
# Parse hg info
function hg_prompt_info() {
if [[ -n $(hg status 2> /dev/null) ]]; then
state=${HG_THEME_PROMPT_DIRTY:-$SCM_THEME_PROMPT_DIRTY}
local state=${HG_THEME_PROMPT_DIRTY:-$SCM_THEME_PROMPT_DIRTY}
else
state=${HG_THEME_PROMPT_CLEAN:-$SCM_THEME_PROMPT_CLEAN}
local state=${HG_THEME_PROMPT_CLEAN:-$SCM_THEME_PROMPT_CLEAN}
fi
prefix=${HG_THEME_PROMPT_PREFIX:-$SCM_THEME_PROMPT_PREFIX}
suffix=${HG_THEME_PROMPT_SUFFIX:-$SCM_THEME_PROMPT_SUFFIX}
branch=$(hg summary 2> /dev/null | grep branch | awk '{print $2}')
changeset=$(hg summary 2> /dev/null | grep parent | awk '{print $2}')
local prefix=${HG_THEME_PROMPT_PREFIX:-$SCM_THEME_PROMPT_PREFIX}
local suffix=${HG_THEME_PROMPT_SUFFIX:-$SCM_THEME_PROMPT_SUFFIX}
local branch=$(hg summary 2> /dev/null | grep branch | awk '{print $2}')
local changeset=$(hg summary 2> /dev/null | grep parent | awk '{print $2}')
echo -e "$prefix${REF_COLOR}${branch}${DEFAULT_COLOR}:${changeset#*:}$state$suffix"
}
@@ -151,16 +149,16 @@ function hg_prompt_info() {
# Parse svn info
function svn_prompt_info() {
if [[ -n $(svn status --ignore-externals -q 2> /dev/null) ]]; then
state=${SVN_THEME_PROMPT_DIRTY:-$SCM_THEME_PROMPT_DIRTY}
local state=${SVN_THEME_PROMPT_DIRTY:-$SCM_THEME_PROMPT_DIRTY}
else
state=${SVN_THEME_PROMPT_CLEAN:-$SCM_THEME_PROMPT_CLEAN}
local state=${SVN_THEME_PROMPT_CLEAN:-$SCM_THEME_PROMPT_CLEAN}
fi
prefix=${SVN_THEME_PROMPT_PREFIX:-$SCM_THEME_PROMPT_PREFIX}
suffix=${SVN_THEME_PROMPT_SUFFIX:-$SCM_THEME_PROMPT_SUFFIX}
ref=$(svn info 2> /dev/null | awk -F/ '/^URL:/ { for (i=0; i<=NF; i++) { if ($i == "branches" || $i == "tags" ) { print $(i+1); break }; if ($i == "trunk") { print $i; break } } }') || return
local prefix=${SVN_THEME_PROMPT_PREFIX:-$SCM_THEME_PROMPT_PREFIX}
local suffix=${SVN_THEME_PROMPT_SUFFIX:-$SCM_THEME_PROMPT_SUFFIX}
local ref=$(svn info 2> /dev/null | awk -F/ '/^URL:/ { for (i=0; i<=NF; i++) { if ($i == "branches" || $i == "tags" ) { print $(i+1); break }; if ($i == "trunk") { print $i; break } } }') || return
[[ -z $ref ]] && return
revision=$(svn info 2> /dev/null | sed -ne 's#^Revision: ##p' )
local revision=$(svn info 2> /dev/null | sed -ne 's#^Revision: ##p' )
echo -e "$prefix${REF_COLOR}$ref${DEFAULT_COLOR}:$revision$state$suffix"
}
@@ -169,14 +167,13 @@ function svn_prompt_info() {
function limited_pwd() {
# Replace $HOME with ~ if possible
RELATIVE_PWD=${PWD/#$HOME/\~}
local RELATIVE_PWD=${PWD/#$HOME/\~}
local offset=$((${#RELATIVE_PWD}-$MAX_PWD_LENGTH))
if [ $offset -gt "0" ]
then
if ((offset > 0)); then
local truncated_symbol="..."
TRUNCATED_PWD=${RELATIVE_PWD:$offset:$MAX_PWD_LENGTH}
local TRUNCATED_PWD=${RELATIVE_PWD:$offset:$MAX_PWD_LENGTH}
echo -e "${truncated_symbol}/${TRUNCATED_PWD#*/}"
else
echo -e "${RELATIVE_PWD}"
@@ -186,7 +183,7 @@ function limited_pwd() {
# Displays the current prompt
function prompt() {
local UC=$USER_COLOR
[ $UID -eq "0" ] && UC=$SUPERUSER_COLOR
((UID == 0)) && UC=$SUPERUSER_COLOR
if [[ $VIRTUAL_PROMPT_ENABLED == 1 ]]; then
PS1="$(scm_char) ${UC}\u ${DEFAULT_COLOR}at ${MACHINE_COLOR}\h$(ip_prompt_info) ${DEFAULT_COLOR}in ${DIRECTORY_COLOR}$(limited_pwd)${DEFAULT_COLOR}$(virtual_prompt_info)$(scm_prompt_info)${reset_color} \$ "

View File

@@ -27,14 +27,6 @@ RBENV_THEME_PROMPT_SUFFIX="| "
RBFU_THEME_PROMPT_PREFIX="|"
RBFU_THEME_PROMPT_SUFFIX="| "
function rvm_version_prompt {
if which rvm &> /dev/null; then
rvm_current=$(rvm tools identifier) || return
rvm_default=$(rvm strings default) || return
[ "$rvm_current" != "$rvm_default" ] && ( echo -e "$RVM_THEME_PROMPT_PREFIX$rvm_current$RVM_THEME_PROMPT_SUFFIX" )
fi
}
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"
@@ -42,7 +34,7 @@ function git_prompt_info {
LAST_PROMPT=""
function prompt_command() {
local new_PS1="${bold_cyan}$(scm_char)${yellow}$(ruby_version_prompt)${green}\w $(scm_prompt_info)"
local new_PS1="${bold_cyan}$(scm_char)${yellow}$(_omb_prompt_print_ruby_env)${green}\w $(scm_prompt_info)"
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

View File

@@ -17,7 +17,7 @@ function prompt_command() {
dtime="$(clock_prompt)"
user_host="${green}\u@${cyan}\h${normal}"
current_dir="${bold_blue}\w${normal}"
rvm_ruby="${bold_red}$(ruby_version_prompt)${normal}"
rvm_ruby="${bold_red}$(_omb_prompt_print_ruby_env)${normal}"
git_branch="$(scm_prompt_info)${normal}"
prompt="${bold_green}\$${normal} "
arrow="${bold_white}${normal} "

View File

@@ -18,7 +18,7 @@ function git_short_sha() {
function prompt() {
local return_status=""
local ruby="${red}$(ruby_version_prompt)${reset_color}"
local ruby="${red}$(_omb_prompt_print_ruby_env)${reset_color}"
local user_host="${green}\h${reset_color}"
local current_path="\w"
local n_commands="\!"

View File

@@ -5,7 +5,7 @@ prompt_setter() {
history -a
history -c
history -r
PS1="($(clock_prompt)) $(scm_char) [$blue\u$reset_color@$green\H$reset_color] $yellow\w${reset_color}$(scm_prompt_info)$(ruby_version_prompt) $reset_color "
PS1="($(clock_prompt)) $(scm_char) [$blue\u$reset_color@$green\H$reset_color] $yellow\w${reset_color}$(scm_prompt_info)$(_omb_prompt_print_ruby_env) $reset_color "
PS2='> '
PS4='+ '
}

View File

@@ -11,9 +11,9 @@ prompt_setter() {
history -c
history -r
# displays user@server in purple
# PS1="$red$(scm_char) $purple\u@\h$reset_color:$blue\w$yellow$(scm_prompt_info)$(ruby_version_prompt) $black\$$reset_color "
# PS1="$red$(scm_char) $purple\u@\h$reset_color:$blue\w$yellow$(scm_prompt_info)$(_omb_prompt_print_ruby_env) $black\$$reset_color "
# no user@server
PS1="$red$(scm_char) $blue\w$yellow$(scm_prompt_info)$(ruby_version_prompt) $black\$$reset_color "
PS1="$red$(scm_char) $blue\w$yellow$(scm_prompt_info)$(_omb_prompt_print_ruby_env) $black\$$reset_color "
PS2='> '
PS4='+ '
}

View File

@@ -1,22 +1,20 @@
# For unstaged(*) and staged(+) values next to branch name in __git_ps1
GIT_PS1_SHOWDIRTYSTATE="enabled"
function rvm_version_prompt {
local gemset=$(echo $GEM_HOME | awk -F'@' '{print $2}')
function _omb_theme_sirup_rubygem {
local gemset=$(command awk -F'@' '{print $2}' <<< "$GEM_HOME")
[[ $gemset ]] && gemset="@$gemset"
[ "$gemset" != "" ] && gemset="@$gemset"
local version=$(echo $MY_RUBY_HOME | awk -F'-' '{print $2}')
local version=$(command awk -F'-' '{print $2}' <<< "$MY_RUBY_HOME")
[[ $version == 1.9.2 ]] && version=
[ "$version" == "1.9.2" ] && version=""
local full="$version$gemset"
[ "$full" != "" ] && echo "$full"
local full=$version$gemset
[[ $full ]] && echo "$full"
}
function prompt_command() {
# Check http://github.com/Sirupsen/dotfiles for screenshot
PS1="$blue\W/$bold_blue$(rvm_version_prompt)$bold_green$(__git_ps1 " (%s)") ${normal}$ "
function prompt_command {
# Check http://github.com/Sirupsen/dotfiles for screenshot
PS1="$blue\W/$bold_blue$(_omb_theme_sirup_rubygem)$bold_green$(__git_ps1 " (%s)") ${normal}$ "
}
safe_append_prompt_command prompt_command

View File

@@ -14,7 +14,7 @@ VIRTUALENV_THEME_PROMPT_PREFIX='|'
VIRTUALENV_THEME_PROMPT_SUFFIX='|'
function prompt_command() {
PS1="\n${green}$(_omb_prompt_print_python_venv)${red}$(ruby_version_prompt) ${reset_color}\h ${orange}in ${reset_color}\w\n${yellow}$(scm_char)$(scm_prompt_info) ${yellow}${white} "
PS1="\n${green}$(_omb_prompt_print_python_venv)${red}$(_omb_prompt_print_ruby_env) ${reset_color}\h ${orange}in ${reset_color}\w\n${yellow}$(scm_char)$(scm_prompt_info) ${yellow}${white} "
}
safe_append_prompt_command prompt_command

View File

@@ -18,7 +18,7 @@ function prompt_command() {
else
status=💔
fi
PS1="\n${yellow}$(ruby_version_prompt) ${purple}\h ${reset_color}in ${green}\w $status \n${bold_cyan} ${blue}|$(clock_prompt)|${green}$(scm_prompt_info) ${green}${reset_color} "
PS1="\n${yellow}$(_omb_prompt_print_ruby_env) ${purple}\h ${reset_color}in ${green}\w $status \n${bold_cyan} ${blue}|$(clock_prompt)|${green}$(scm_prompt_info) ${green}${reset_color} "
}
THEME_CLOCK_COLOR=${THEME_CLOCK_COLOR:-"$blue"}