Merge branch 'refactor-modern'

This commit is contained in:
Koichi Murase
2024-04-28 04:44:34 +09:00
6 changed files with 236 additions and 271 deletions

View File

@ -2,29 +2,29 @@
# Mairan Bash Prompt, inspired by "Zork"
if tput setaf 1 &> /dev/null; then
if [[ $(tput colors) -ge 256 ]] 2>/dev/null; then
MAGENTA=$(tput setaf 9)
ORANGE=$(tput setaf 172)
GREEN=$(tput setaf 190)
PURPLE=$(tput setaf 141)
WHITE=$(tput setaf 0)
else
MAGENTA=$(tput setaf 5)
ORANGE=$(tput setaf 4)
GREEN=$(tput setaf 2)
PURPLE=$(tput setaf 1)
WHITE=$(tput setaf 7)
fi
BOLD=$(tput bold)
RESET=$(tput sgr0)
if [[ $(tput colors) -ge 256 ]] 2>/dev/null; then
MAGENTA=$(tput setaf 9)
ORANGE=$(tput setaf 172)
GREEN=$(tput setaf 190)
PURPLE=$(tput setaf 141)
WHITE=$(tput setaf 0)
else
MAGENTA=$(tput setaf 5)
ORANGE=$(tput setaf 4)
GREEN=$(tput setaf 2)
PURPLE=$(tput setaf 1)
WHITE=$(tput setaf 7)
fi
BOLD=$(tput bold)
RESET=$(tput sgr0)
else
MAGENTA="\033[1;31m"
ORANGE="\033[1;33m"
GREEN="\033[1;32m"
PURPLE="\033[1;35m"
WHITE="\033[1;37m"
BOLD=""
RESET="\033[m"
MAGENTA="\033[1;31m"
ORANGE="\033[1;33m"
GREEN="\033[1;32m"
PURPLE="\033[1;35m"
WHITE="\033[1;37m"
BOLD=""
RESET="\033[m"
fi
# prompt_symbol='λ'
@ -45,87 +45,76 @@ SCM_HG_CHAR="${_omb_prompt_bold_brown}☿${_omb_prompt_normal}"
export MYSQL_PS1="(\u@\h) [\d]> "
case $TERM in
xterm*)
TITLEBAR="\[\033]0;\w\007\]"
;;
*)
TITLEBAR=""
;;
xterm*)
TITLEBAR="\[\033]0;\w\007\]"
;;
*)
TITLEBAR=""
;;
esac
PS3=">> "
function __my_rvm_ruby_version {
local gemset=$(echo $GEM_HOME | awk -F'@' '{print $2}')
[ "$gemset" != "" ] && gemset="@$gemset"
local version=$(echo $MY_RUBY_HOME | awk -F'-' '{print $2}')
local full="$version$gemset"
[ "$full" != "" ] && echo "[$full]"
local gemset=$(awk -F'@' '{print $2}' <<< "$GEM_HOME")
[[ $gemset ]] && gemset=@$gemset
local version=$(awk -F'-' '{print $2}' <<< "$MY_RUBY_HOME")
local full=$version$gemset
[[ $full ]] && echo "[$full]"
}
function is_vim_shell {
if [ ! -z "$VIMRUNTIME" ]
then
echo "[${_omb_prompt_teal}vim shell${_omb_prompt_normal}]"
fi
if [[ $VIMRUNTIME ]]; then
echo "[${_omb_prompt_teal}vim shell${_omb_prompt_normal}]"
fi
}
function modern_scm_prompt {
CHAR=$(scm_char)
if [ $CHAR = $SCM_NONE_CHAR ]
then
return
else
echo "[$(scm_char)][$GREEN$(scm_prompt_info)]"
fi
local CHAR=$(scm_char)
if [[ $CHAR == "$SCM_NONE_CHAR" ]]; then
return
else
echo "[$(scm_char)][$GREEN$(scm_prompt_info)]"
fi
}
# show chroot if exist
function chroot {
if [ -n "$debian_chroot" ]
then
my_ps_chroot="${_omb_prompt_bold_teal}$debian_chroot${_omb_prompt_normal}";
echo "($my_ps_chroot)";
fi
}
if [[ $debian_chroot ]]; then
local my_ps_chroot=$_omb_prompt_bold_teal$debian_chroot$_omb_prompt_normal
echo "($my_ps_chroot)"
fi
}
# show virtualenvwrapper
function my_ve {
if [ -n "$VIRTUAL_ENV" ]
then
my_ps_ve="${_omb_prompt_bold_purple}$ve${_omb_prompt_normal}";
echo "($my_ps_ve)";
fi
echo "";
}
if [[ $VIRTUAL_ENV ]]; then
local ve=$(basename "$VIRTUAL_ENV")
local my_ps_ve=$_omb_prompt_bold_purple$ve$_omb_prompt_normal
echo "($my_ps_ve)"
fi
echo ""
}
function _omb_theme_PROMPT_COMMAND {
local my_ps_host="$BOLD$ORANGE\h${_omb_prompt_normal}"
# yes, these are the the same for now ...
local my_ps_host_root="$ORANGE\h${_omb_prompt_normal}"
my_ps_host="$BOLD$ORANGE\h${_omb_prompt_normal}";
# yes, these are the the same for now ...
my_ps_host_root="$ORANGE\h${_omb_prompt_normal}";
local my_ps_user="$BOLD$GREEN\u${_omb_prompt_normal}"
local my_ps_root="${_omb_prompt_bold_brown}\u${_omb_prompt_normal}"
my_ps_user="$BOLD$GREEN\u${_omb_prompt_normal}"
my_ps_root="${_omb_prompt_bold_brown}\u${_omb_prompt_normal}";
if [ -n "$VIRTUAL_ENV" ]
then
ve=`basename "$VIRTUAL_ENV"`;
fi
# nice prompt
case "`id -u`" in
0) PS1="\n${TITLEBAR}${BRACKET_COLOR}┌─${_omb_prompt_normal}$(my_ve)$(chroot)[$my_ps_root][$my_ps_host_root]$(modern_scm_prompt)$(__my_rvm_ruby_version)[${_omb_prompt_green}\w${_omb_prompt_normal}]$(is_vim_shell)${BRACKET_COLOR}
# nice prompt
case $(id -u) in
0) PS1="\n${TITLEBAR}${BRACKET_COLOR}┌─${_omb_prompt_normal}$(my_ve)$(chroot)[$my_ps_root][$my_ps_host_root]$(modern_scm_prompt)$(__my_rvm_ruby_version)[${_omb_prompt_green}\w${_omb_prompt_normal}]$(is_vim_shell)${BRACKET_COLOR}
└─▪ ${prompt_symbol} ${_omb_prompt_normal}"
;;
*) PS1="\n${TITLEBAR}${BRACKET_COLOR}┌─${_omb_prompt_normal}$(my_ve)$(chroot)[$my_ps_user][$my_ps_host]$(modern_scm_prompt)${_omb_prompt_normal}$(__my_rvm_ruby_version)[${_omb_prompt_green}\w${_omb_prompt_normal}]$(is_vim_shell)${BRACKET_COLOR}
;;
*) PS1="\n${TITLEBAR}${BRACKET_COLOR}┌─${_omb_prompt_normal}$(my_ve)$(chroot)[$my_ps_user][$my_ps_host]$(modern_scm_prompt)${_omb_prompt_normal}$(__my_rvm_ruby_version)[${_omb_prompt_green}\w${_omb_prompt_normal}]$(is_vim_shell)${BRACKET_COLOR}
└─▪ ${prompt_symbol} ${_omb_prompt_normal}"
;;
esac
;;
esac
}
PS2="└─▪ "
_omb_util_add_prompt_command _omb_theme_PROMPT_COMMAND

View File

@ -9,35 +9,33 @@ SCM_SVN_CHAR="${_omb_prompt_bold_teal}⑆${_omb_prompt_normal}"
SCM_HG_CHAR="${_omb_prompt_bold_brown}${_omb_prompt_normal}"
case $TERM in
xterm*)
TITLEBAR="\[\033]0;\w\007\]"
;;
*)
TITLEBAR=""
;;
xterm*)
TITLEBAR="\[\033]0;\w\007\]"
;;
*)
TITLEBAR=""
;;
esac
PS3=">> "
function is_vim_shell {
if [ ! -z "$VIMRUNTIME" ]
then
echo "[${_omb_prompt_teal}vim shell${_omb_prompt_normal}]"
fi
if [[ $VIMRUNTIME ]]; then
echo "[${_omb_prompt_teal}vim shell${_omb_prompt_normal}]"
fi
}
function modern_scm_prompt {
CHAR=$(scm_char)
if [ $CHAR = $SCM_NONE_CHAR ]
then
return
else
echo "[$(scm_char)][$(scm_prompt_info)]"
fi
local CHAR=$(scm_char)
if [[ $CHAR == "$SCM_NONE_CHAR" ]]; then
return
else
echo "[$(scm_char)][$(scm_prompt_info)]"
fi
}
function _omb_theme_PROMPT_COMMAND {
if (($? != 0)); then
if (($? != 0)); then
local border_color=$_omb_prompt_bold_brown
else
local border_color=$_omb_prompt_normal
@ -47,7 +45,7 @@ function _omb_theme_PROMPT_COMMAND {
_omb_util_binary_exists t &&
todo_count=[${_omb_prompt_teal}$(command t | wc -l | sed -e's/ *//')${_omb_prompt_reset_color}]
PS1="${TITLEBAR}${border_color}┌─$todo_count${_omb_prompt_normal}$(modern_scm_prompt)[${_omb_prompt_teal}\W${_omb_prompt_normal}]$(is_vim_shell)"
PS1="${TITLEBAR}${border_color}┌─$todo_count${_omb_prompt_normal}$(modern_scm_prompt)[${_omb_prompt_teal}\W${_omb_prompt_normal}]$(is_vim_shell)"
PS1+="\n${border_color}└─▪${_omb_prompt_normal} "
}

View File

@ -9,49 +9,45 @@ SCM_SVN_CHAR="${_omb_prompt_bold_teal}⑆${_omb_prompt_normal}"
SCM_HG_CHAR="${_omb_prompt_bold_brown}${_omb_prompt_normal}"
case $TERM in
xterm*)
TITLEBAR="\[\033]0;\w\007\]"
;;
*)
TITLEBAR=""
;;
xterm*)
TITLEBAR="\[\033]0;\w\007\]"
;;
*)
TITLEBAR=""
;;
esac
PS3=">> "
function is_vim_shell {
if [ ! -z "$VIMRUNTIME" ]
then
echo "[${_omb_prompt_teal}vim shell${_omb_prompt_normal}]"
fi
if [[ $VIMRUNTIME ]]; then
echo "[${_omb_prompt_teal}vim shell${_omb_prompt_normal}]"
fi
}
function modern_scm_prompt {
CHAR=$(scm_char)
if [ $CHAR = $SCM_NONE_CHAR ]
then
return
else
echo "[$(scm_char)][$(scm_prompt_info)]"
fi
local CHAR=$(scm_char)
if [[ $CHAR == "$SCM_NONE_CHAR" ]]; then
return
else
echo "[$(scm_char)][$(scm_prompt_info)]"
fi
}
function _omb_theme_PROMPT_COMMAND {
if [ $? -ne 0 ]
then
# Yes, the indenting on these is weird, but it has to be like
# this otherwise it won't display properly.
local last_exit=$? border_color
if ((last_exit != 0)); then
border_color=$_omb_prompt_bold_brown
else
border_color=$_omb_prompt_normal
fi
PS1="${TITLEBAR}${_omb_prompt_bold_brown}┌─${_omb_prompt_reset_color}$(modern_scm_prompt)[${_omb_prompt_teal}\W${_omb_prompt_normal}][$(battery_charge)]$(is_vim_shell)
${_omb_prompt_bold_brown}└─▪${_omb_prompt_normal} "
else
PS1="${TITLEBAR}┌─$(modern_scm_prompt)[${_omb_prompt_teal}\W${_omb_prompt_normal}][$(battery_charge)]$(is_vim_shell)
└─▪ "
fi
PS1=$TITLEBAR
PS1=$PS1$border_color'┌─'$_omb_prompt_normal
PS1=$PS1$(modern_scm_prompt)[$_omb_prompt_teal'\W'$_omb_prompt_normal][$(battery_charge)]$(is_vim_shell)$'\n'
PS1=$PS1$border_color'└─▪'$_omb_prompt_normal' '
}
PS2="└─▪ "
_omb_util_add_prompt_command _omb_theme_PROMPT_COMMAND

View File

@ -17,7 +17,7 @@ SCM_HG_CHAR="${_omb_prompt_bold_brown}☿${_omb_prompt_normal}"
PROMPT_CHAR="${OMB_THEME_BRACKET_COLOR}${_omb_prompt_normal}"
if [[ $OSTYPE == *darwin* ]]; then
PROMPT_CHAR="${OMB_THEME_BRACKET_COLOR}${_omb_prompt_normal}"
PROMPT_CHAR="${OMB_THEME_BRACKET_COLOR}${_omb_prompt_normal}"
fi
#Mysql Prompt
@ -25,76 +25,74 @@ export MYSQL_PS1="(\u@\h) [\d]> "
TITLEBAR=""
case $TERM in
xterm*) TITLEBAR="\[\033]0;\w\007\]" ;;
xterm*) TITLEBAR="\[\033]0;\w\007\]" ;;
esac
function __my_rvm_ruby_version {
local gemset ; gemset=$(awk -F'@' '{print $2}' <<< "${GEM_HOME}")
local version ; version=$(awk -F'-' '{print $2}' <<< "${MY_RUBY_HOME}")
[ "${gemset}" != "" ] && gemset="@${gemset}"
local full="${version}${gemset}"
[ "${full}" != "" ] \
&& echo "${OMB_THEME_BRACKET_COLOR}[${OMB_THEME_STRING_COLOR}${full}${OMB_THEME_BRACKET_COLOR}]${_omb_prompt_normal}"
local gemset=$(awk -F'@' '{print $2}' <<< "${GEM_HOME}")
local version=$(awk -F'-' '{print $2}' <<< "${MY_RUBY_HOME}")
[[ $gemset ]] && gemset=@$gemset
local full=$version$gemset
[[ $full ]] && echo "${OMB_THEME_BRACKET_COLOR}[${OMB_THEME_STRING_COLOR}${full}${OMB_THEME_BRACKET_COLOR}]${_omb_prompt_normal}"
}
function is_vim_shell {
if [ -n "${VIMRUNTIME}" ] ; then
echo "${OMB_THEME_BRACKET_COLOR}[${OMB_THEME_STRING_COLOR}vim shell${OMB_THEME_BRACKET_COLOR}]${_omb_prompt_normal}"
fi
if [[ $VIMRUNTIME ]]; then
echo "${OMB_THEME_BRACKET_COLOR}[${OMB_THEME_STRING_COLOR}vim shell${OMB_THEME_BRACKET_COLOR}]${_omb_prompt_normal}"
fi
}
function is_integer { # helper function to make sure input is an integer
[ "$1" -eq "$1" ] > /dev/null 2>&1
return $?
[ "$1" -eq "$1" ] &> /dev/null
return "$?"
}
# XXX do we need/want to integrate with todo.sh? We don't provide it and I
# can't find a version online that accepts ls as an input
function todo_txt_count {
if _omb_util_command_exists todo.sh; then # is todo.sh installed
local count=$(todo.sh ls \
| awk '/TODO: [0-9]+ of ([0-9]+) tasks shown/ { print $4 }')
if is_integer "${count}" ; then # did we get a sane answer back
echo "${OMB_THEME_BRACKET_COLOR}[${OMB_THEME_STRING_COLOR}T:$count${OMB_THEME_BRACKET_COLOR}]$_omb_prompt_normal"
fi
if _omb_util_command_exists todo.sh; then # is todo.sh installed
local count=$(todo.sh ls \
| awk '/TODO: [0-9]+ of ([0-9]+) tasks shown/ { print $4 }')
if is_integer "${count}"; then # did we get a sane answer back
echo "${OMB_THEME_BRACKET_COLOR}[${OMB_THEME_STRING_COLOR}T:$count${OMB_THEME_BRACKET_COLOR}]$_omb_prompt_normal"
fi
fi
}
function modern_scm_prompt {
local CHAR=$(scm_char)
if [ ! "${CHAR}" = "${SCM_NONE_CHAR}" ] ; then
printf "%s" \
"${OMB_THEME_BRACKET_COLOR}[${CHAR}${OMB_THEME_BRACKET_COLOR}]" \
"[${OMB_THEME_STRING_COLOR}$(scm_prompt_info)${OMB_THEME_BRACKET_COLOR}]$_omb_prompt_normal"
printf "\n"
fi
local CHAR=$(scm_char)
if [[ $CHAR != "$SCM_NONE_CHAR" ]]; then
local char=$OMB_THEME_BRACKET_COLOR[$CHAR$OMB_THEME_BRACKET_COLOR]
local info=[$OMB_THEME_STRING_COLOR$(scm_prompt_info)$OMB_THEME_BRACKET_COLOR]
printf '%s\n' "$char$info$_omb_prompt_normal"
fi
}
function _omb_theme_PROMPT_COMMAND {
local my_host="${OMB_THEME_STRING_COLOR}\h${_omb_prompt_normal}";
local my_user="${OMB_THEME_STRING_COLOR}\u${_omb_prompt_normal}";
local my_path="${OMB_THEME_STRING_COLOR}\w${_omb_prompt_normal}";
local bracket_c="${OMB_THEME_BRACKET_COLOR}"
local my_host=$OMB_THEME_STRING_COLOR'\h'$_omb_prompt_normal
local my_user=$OMB_THEME_STRING_COLOR'\u'$_omb_prompt_normal
local my_path=$OMB_THEME_STRING_COLOR'\w'$_omb_prompt_normal
local bracket_c=$OMB_THEME_BRACKET_COLOR
local line2 ; line2="${bracket_c}└─$(todo_txt_count)${PROMPT_CHAR}"
# nice prompt
case "$(id -u)" in
0)
my_user="${_omb_prompt_bold_brown}\u${_omb_prompt_normal}";
line2="${bracket_c}└─${PROMPT_CHAR}"
;;
esac
local line2=$bracket_c'└─'$(todo_txt_count)$PROMPT_CHAR
# nice prompt
case $(id -u) in
(0)
my_user=$_omb_prompt_bold_brown'\u'$_omb_prompt_normal
line2=$bracket_c'└─'$PROMPT_CHAR
;;
esac
PS1="${TITLEBAR}"
PS1="${PS1}${bracket_c}┌─[${my_user}${bracket_c}][$my_host${bracket_c}]"
PS1="${PS1}$(modern_scm_prompt)"
PS1="${PS1}$(__my_rvm_ruby_version)"
PS1="${PS1}${bracket_c}[${my_path}${bracket_c}]$(is_vim_shell)"
PS1="${PS1}\n${line2}"
PS1=$TITLEBAR
PS1=$PS1$bracket_c'┌─'[$my_user$bracket_c][$my_host$bracket_c]
PS1=$PS1$(modern_scm_prompt)
PS1=$PS1$(__my_rvm_ruby_version)
PS1=$PS1$bracket_c[$my_path$bracket_c]$(is_vim_shell)
PS1=$PS1'\n'$line2
}
PS2="└─${PROMPT_CHAR}"
PS3=">> "
PS2='└─'$PROMPT_CHAR
PS3='>> '
_omb_util_add_prompt_command _omb_theme_PROMPT_COMMAND

View File

@ -12,76 +12,71 @@ SCM_HG_CHAR="${_omb_prompt_bold_brown}☿${_omb_prompt_normal}"
export MYSQL_PS1="(\u@\h) [\d]> "
case $TERM in
xterm*)
TITLEBAR="\[\033]0;\w\007\]"
;;
*)
TITLEBAR=""
;;
xterm*)
TITLEBAR="\[\033]0;\w\007\]"
;;
*)
TITLEBAR=""
;;
esac
PS3=">> "
function __my_rvm_ruby_version {
local gemset=$(echo $GEM_HOME | awk -F'@' '{print $2}')
[ "$gemset" != "" ] && gemset="@$gemset"
local version=$(echo $MY_RUBY_HOME | awk -F'-' '{print $2}')
local full="$version$gemset"
[ "$full" != "" ] && echo "[$full]"
local gemset=$(awk -F'@' '{print $2}' <<< "$GEM_HOME")
[[ $gemset ]] && gemset=@$gemset
local version=$(awk -F'-' '{print $2}' <<< "$MY_RUBY_HOME")
local full=$version$gemset
[[ $full ]] && echo "[$full]"
}
function __my_venv_prompt {
if [ ! -z "$VIRTUAL_ENV" ]
then
if [[ $VIRTUAL_ENV ]]; then
echo "[${_omb_prompt_navy}@${_omb_prompt_normal}${VIRTUAL_ENV##*/}]"
fi
}
function is_vim_shell {
if [ ! -z "$VIMRUNTIME" ]
then
echo "[${_omb_prompt_teal}vim shell${_omb_prompt_normal}]"
fi
if [[ $VIMRUNTIME ]]; then
echo "[${_omb_prompt_teal}vim shell${_omb_prompt_normal}]"
fi
}
function modern_scm_prompt {
CHAR=$(scm_char)
if [ $CHAR = $SCM_NONE_CHAR ]
then
return
else
echo "[$(scm_char)][$(scm_prompt_info)]"
fi
local CHAR=$(scm_char)
if [[ $CHAR == "$SCM_NONE_CHAR" ]]; then
return
else
echo "[$(scm_char)][$(scm_prompt_info)]"
fi
}
function _omb_theme_PROMPT_COMMAND {
local my_ps_host
case $HOSTNAME in
"clappy"* ) my_ps_host="${_omb_prompt_green}\h${_omb_prompt_normal}";
;;
"icekernel") my_ps_host="${_omb_prompt_brown}\h${_omb_prompt_normal}";
;;
* ) my_ps_host="${_omb_prompt_green}\h${_omb_prompt_normal}";
;;
esac
case $HOSTNAME in
"clappy"* ) my_ps_host="${_omb_prompt_green}\h${_omb_prompt_normal}";
;;
"icekernel") my_ps_host="${_omb_prompt_brown}\h${_omb_prompt_normal}";
;;
* ) my_ps_host="${_omb_prompt_green}\h${_omb_prompt_normal}";
;;
esac
local my_ps_user="\[\033[01;32m\]\u\[\033[00m\]";
local my_ps_root="\[\033[01;31m\]\u\[\033[00m\]";
local my_ps_path="\[\033[01;36m\]\w\[\033[00m\]";
my_ps_user="\[\033[01;32m\]\u\[\033[00m\]";
my_ps_root="\[\033[01;31m\]\u\[\033[00m\]";
my_ps_path="\[\033[01;36m\]\w\[\033[00m\]";
# nice prompt
case "`id -u`" in
0) PS1="${TITLEBAR}[$my_ps_root][$my_ps_host]$(modern_scm_prompt)$(__my_rvm_ruby_version)[${_omb_prompt_teal}\w${_omb_prompt_normal}]$(is_vim_shell)
# nice prompt
case $(id -u) in
0) PS1="${TITLEBAR}[$my_ps_root][$my_ps_host]$(modern_scm_prompt)$(__my_rvm_ruby_version)[${_omb_prompt_teal}\w${_omb_prompt_normal}]$(is_vim_shell)
$ "
;;
*) PS1="${TITLEBAR}[$my_ps_user][$my_ps_host]$(modern_scm_prompt)$(__my_rvm_ruby_version)$(__my_venv_prompt)[${_omb_prompt_teal}\w${_omb_prompt_normal}]$(is_vim_shell)
;;
*) PS1="${TITLEBAR}[$my_ps_user][$my_ps_host]$(modern_scm_prompt)$(__my_rvm_ruby_version)$(__my_venv_prompt)[${_omb_prompt_teal}\w${_omb_prompt_normal}]$(is_vim_shell)
$ "
;;
esac
;;
esac
}
PS2="> "
_omb_util_add_prompt_command _omb_theme_PROMPT_COMMAND

View File

@ -12,87 +12,76 @@ SCM_HG_CHAR="${_omb_prompt_bold_brown}☿${_omb_prompt_normal}"
export MYSQL_PS1="(\u@\h) [\d]> "
case $TERM in
xterm*)
TITLEBAR="\[\033]0;\w\007\]"
;;
*)
TITLEBAR=""
;;
xterm*)
TITLEBAR="\[\033]0;\w\007\]"
;;
*)
TITLEBAR=""
;;
esac
PS3=">> "
function __my_rvm_ruby_version {
local gemset=$(echo $GEM_HOME | awk -F'@' '{print $2}')
[ "$gemset" != "" ] && gemset="@$gemset"
local version=$(echo $MY_RUBY_HOME | awk -F'-' '{print $2}')
local full="$version$gemset"
[ "$full" != "" ] && echo "[$full]"
local gemset=$(awk -F'@' '{print $2}' <<< "$GEM_HOME")
[[ $gemset ]] && gemset=@$gemset
local version=$(awk -F'-' '{print $2}' <<< "$MY_RUBY_HOME")
local full=$version$gemset
[[ $full ]] && echo "[$full]"
}
function is_vim_shell {
if [ ! -z "$VIMRUNTIME" ]
then
echo "[${_omb_prompt_teal}vim shell${_omb_prompt_normal}]"
fi
if [[ $VIMRUNTIME ]]; then
echo "[${_omb_prompt_teal}vim shell${_omb_prompt_normal}]"
fi
}
function modern_scm_prompt {
CHAR=$(scm_char)
if [ $CHAR = $SCM_NONE_CHAR ]
then
return
else
echo "[$(scm_char)][$(scm_prompt_info)]"
fi
local CHAR=$(scm_char)
if [[ $CHAR == "$SCM_NONE_CHAR" ]]; then
return
else
echo "[$(scm_char)][$(scm_prompt_info)]"
fi
}
# show chroot if exist
function chroot {
if [ -n "$debian_chroot" ]
then
my_ps_chroot="${_omb_prompt_bold_teal}$debian_chroot${_omb_prompt_normal}";
echo "($my_ps_chroot)";
fi
}
if [[ $debian_chroot ]]; then
local my_ps_chroot=$_omb_prompt_bold_teal$debian_chroot$_omb_prompt_normal
echo "($my_ps_chroot)"
fi
}
# show virtualenvwrapper
function my_ve {
if [ -n "$VIRTUAL_ENV" ]
then
my_ps_ve="${_omb_prompt_bold_purple}$ve${_omb_prompt_normal}";
echo "($my_ps_ve)";
fi
echo "";
}
if [[ $VIRTUAL_ENV ]]; then
local ve=$(basename "$VIRTUAL_ENV")
local my_ps_ve=$_omb_prompt_bold_purple$ve$_omb_prompt_normal
echo "($my_ps_ve)"
fi
echo ""
}
function _omb_theme_PROMPT_COMMAND {
local my_ps_host="${_omb_prompt_green}\h${_omb_prompt_normal}"
# yes, these are the the same for now ...
local my_ps_host_root="${_omb_prompt_green}\h${_omb_prompt_normal}"
my_ps_host="${_omb_prompt_green}\h${_omb_prompt_normal}";
# yes, these are the the same for now ...
my_ps_host_root="${_omb_prompt_green}\h${_omb_prompt_normal}";
local my_ps_user="${_omb_prompt_bold_green}\u${_omb_prompt_normal}"
local my_ps_root="${_omb_prompt_bold_brown}\u${_omb_prompt_normal}"
my_ps_user="${_omb_prompt_bold_green}\u${_omb_prompt_normal}"
my_ps_root="${_omb_prompt_bold_brown}\u${_omb_prompt_normal}";
if [ -n "$VIRTUAL_ENV" ]
then
ve=`basename "$VIRTUAL_ENV"`;
fi
# nice prompt
case "`id -u`" in
0) PS1="${TITLEBAR}┌─$(my_ve)$(chroot)[$my_ps_root][$my_ps_host_root]$(modern_scm_prompt)$(__my_rvm_ruby_version)[${_omb_prompt_teal}\w${_omb_prompt_normal}]$(is_vim_shell)
# nice prompt
case $(id -u) in
0) PS1="${TITLEBAR}┌─$(my_ve)$(chroot)[$my_ps_root][$my_ps_host_root]$(modern_scm_prompt)$(__my_rvm_ruby_version)[${_omb_prompt_teal}\w${_omb_prompt_normal}]$(is_vim_shell)
└─▪ "
;;
*) PS1="${TITLEBAR}┌─$(my_ve)$(chroot)[$my_ps_user][$my_ps_host]$(modern_scm_prompt)$(__my_rvm_ruby_version)[${_omb_prompt_teal}\w${_omb_prompt_normal}]$(is_vim_shell)
;;
*) PS1="${TITLEBAR}┌─$(my_ve)$(chroot)[$my_ps_user][$my_ps_host]$(modern_scm_prompt)$(__my_rvm_ruby_version)[${_omb_prompt_teal}\w${_omb_prompt_normal}]$(is_vim_shell)
└─▪ "
;;
esac
;;
esac
}
PS2="└─▪ "
_omb_util_add_prompt_command _omb_theme_PROMPT_COMMAND