121 lines
2.8 KiB
Bash
121 lines
2.8 KiB
Bash
# 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)
|
|
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"
|
|
fi
|
|
|
|
# prompt_symbol='λ'
|
|
# prompt_symbol='⚡'
|
|
prompt_symbol=''
|
|
BRACKET_COLOR=$ORANGE
|
|
|
|
SCM_THEME_PROMPT_PREFIX=""
|
|
SCM_THEME_PROMPT_SUFFIX=""
|
|
|
|
SCM_THEME_PROMPT_DIRTY=" ${bold_red}✗${normal}"
|
|
SCM_THEME_PROMPT_CLEAN=" ${bold_green}✓${normal}"
|
|
SCM_GIT_CHAR="${bold_green}±${normal}"
|
|
SCM_SVN_CHAR="${bold_cyan}⑆${normal}"
|
|
SCM_HG_CHAR="${bold_red}☿${normal}"
|
|
|
|
#Mysql Prompt
|
|
export MYSQL_PS1="(\u@\h) [\d]> "
|
|
|
|
case $TERM in
|
|
xterm*)
|
|
TITLEBAR="\[\033]0;\w\007\]"
|
|
;;
|
|
*)
|
|
TITLEBAR=""
|
|
;;
|
|
esac
|
|
|
|
PS3=">> "
|
|
|
|
__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]"
|
|
}
|
|
|
|
is_vim_shell() {
|
|
if [ ! -z "$VIMRUNTIME" ]
|
|
then
|
|
echo "[${cyan}vim shell${normal}]"
|
|
fi
|
|
}
|
|
|
|
# show chroot if exist
|
|
chroot(){
|
|
if [ -n "$debian_chroot" ]
|
|
then
|
|
my_ps_chroot="${bold_cyan}$debian_chroot${normal}";
|
|
echo "($my_ps_chroot)";
|
|
fi
|
|
}
|
|
|
|
# show virtualenvwrapper
|
|
my_ve(){
|
|
if [ -n "$VIRTUAL_ENV" ]
|
|
then
|
|
my_ps_ve="${bold_purple}$ve${normal}";
|
|
echo "($my_ps_ve)";
|
|
fi
|
|
echo "";
|
|
}
|
|
|
|
prompt() {
|
|
SCM_PROMPT_FORMAT="[%s$GREEN%s]"
|
|
my_ps_host="$BOLD$ORANGE\h${normal}";
|
|
# yes, these are the the same for now ...
|
|
my_ps_host_root="$ORANGE\h${normal}";
|
|
|
|
my_ps_user="$BOLD$GREEN\u${normal}"
|
|
my_ps_root="${bold_red}\u${normal}";
|
|
|
|
if [ -n "$VIRTUAL_ENV" ]
|
|
then
|
|
ve=`basename "$VIRTUAL_ENV"`;
|
|
fi
|
|
|
|
# nice prompt
|
|
case "`id -u`" in
|
|
0) PS1="\n${TITLEBAR}${BRACKET_COLOR}┌─${normal}$(my_ve)$(chroot)[$my_ps_root][$my_ps_host_root]$(scm_prompt)$(__my_rvm_ruby_version)[${green}\w${normal}]$(is_vim_shell)${BRACKET_COLOR}
|
|
└─▪ ${prompt_symbol} ${normal}"
|
|
;;
|
|
*) PS1="\n${TITLEBAR}${BRACKET_COLOR}┌─${normal}$(my_ve)$(chroot)[$my_ps_user][$my_ps_host]$(scm_prompt)${normal}$(__my_rvm_ruby_version)[${green}\w${normal}]$(is_vim_shell)${BRACKET_COLOR}
|
|
└─▪ ${prompt_symbol} ${normal}"
|
|
;;
|
|
esac
|
|
}
|
|
|
|
PS2="└─▪ "
|
|
|
|
|
|
|
|
safe_append_prompt_command prompt
|