mirror of
				https://github.com/ohmybash/oh-my-bash.git
				synced 2024-05-11 05:55:37 +00:00 
			
		
		
		
	themes/base: Refactor prompt info for ruby envs
This commit is contained in:
		@@ -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}→ "
 | 
			
		||||
 
 | 
			
		||||
@@ -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
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -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} "
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -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"}
 | 
			
		||||
 
 | 
			
		||||
@@ -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}"
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -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=' '
 | 
			
		||||
 
 | 
			
		||||
@@ -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='+ '
 | 
			
		||||
 
 | 
			
		||||
@@ -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='> '
 | 
			
		||||
 
 | 
			
		||||
@@ -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
 | 
			
		||||
 
 | 
			
		||||
@@ -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} \$ "
 | 
			
		||||
 
 | 
			
		||||
@@ -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
 | 
			
		||||
 
 | 
			
		||||
@@ -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} "
 | 
			
		||||
 
 | 
			
		||||
@@ -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="\!"
 | 
			
		||||
 
 | 
			
		||||
@@ -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='+ '
 | 
			
		||||
}
 | 
			
		||||
 
 | 
			
		||||
@@ -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='+ '
 | 
			
		||||
}
 | 
			
		||||
 
 | 
			
		||||
@@ -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
 | 
			
		||||
 
 | 
			
		||||
@@ -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
 | 
			
		||||
 
 | 
			
		||||
@@ -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"}
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user