blob: bebc9b3ddfb3a4b8731a17985b29ac03169048f7 [file] [log] [blame]
rjorgensone8a4e352011-06-17 06:13:55 -07001# port of zork theme
2
rjorgenson2b4f94a2011-06-18 04:42:44 -07003# set colors for use throughout the prompt
4# i like things consistent
5BRACKET_COLOR=$blue
6STRING_COLOR=$green
7
rjorgensone8a4e352011-06-17 06:13:55 -07008SCM_THEME_PROMPT_PREFIX=""
9SCM_THEME_PROMPT_SUFFIX=""
10
11SCM_THEME_PROMPT_DIRTY=' ${bold_red}✗${normal}'
12SCM_THEME_PROMPT_CLEAN=' ${bold_green}✓${normal}'
rjorgenson2b4f94a2011-06-18 04:42:44 -070013SCM_GIT_CHAR='${STRING_COLOR}±${normal}'
rjorgensone8a4e352011-06-17 06:13:55 -070014SCM_SVN_CHAR='${bold_cyan}⑆${normal}'
15SCM_HG_CHAR='${bold_red}☿${normal}'
16
17#Mysql Prompt
18export MYSQL_PS1="(\u@\h) [\d]> "
19
20case $TERM in
21 xterm*)
22 TITLEBAR="\[\033]0;\w\007\]"
23 ;;
24 *)
25 TITLEBAR=""
26 ;;
27esac
28
29PS3=">> "
30
31__my_rvm_ruby_version() {
32 local gemset=$(echo $GEM_HOME | awk -F'@' '{print $2}')
33 [ "$gemset" != "" ] && gemset="@$gemset"
34 local version=$(echo $MY_RUBY_HOME | awk -F'-' '{print $2}')
35 local full="$version$gemset"
rjorgenson2b4f94a2011-06-18 04:42:44 -070036 [ "$full" != "" ] && echo "${BRACKET_COLOR}[${STRING_COLOR}$full${BRACKET_COLOR}]${normal}"
rjorgensone8a4e352011-06-17 06:13:55 -070037}
38
39is_vim_shell() {
40 if [ ! -z "$VIMRUNTIME" ]
41 then
rjorgenson2b4f94a2011-06-18 04:42:44 -070042 echo "$BRACKET_COLOR[${STRING_COLOR}vim shell$BRACKET_COLOR]$normal"
rjorgensone8a4e352011-06-17 06:13:55 -070043 fi
44}
45
rjorgenson0b218c42011-06-29 01:27:24 -070046function is_integer() { # helper function for todo-txt-count
47 [ "$1" -eq "$1" ] > /dev/null 2>&1
48 return $?
49}
50
rjorgensona59d7852011-06-17 23:28:57 -070051todo_txt_count() {
rjorgenson0b218c42011-06-29 01:27:24 -070052 if `hash todo.sh 2>&-`; then # is todo.sh installed
53 count=`todo.sh ls | egrep "TODO: [0-9]+ of ([0-9]+) tasks shown" | awk '{ print $4 }'`
54 if is_integer $count; then # did we get a sane answer back
55 echo "$BRACKET_COLOR[${STRING_COLOR}T:$count$BRACKET_COLOR]$normal"
56 fi
57 fi
rjorgensona59d7852011-06-17 23:28:57 -070058}
59
rjorgensone8a4e352011-06-17 06:13:55 -070060modern_scm_prompt() {
61 CHAR=$(scm_char)
62 if [ $CHAR = $SCM_NONE_CHAR ]
63 then
64 return
65 else
rjorgenson2b4f94a2011-06-18 04:42:44 -070066 echo "$BRACKET_COLOR[$(scm_char)$BRACKET_COLOR][$STRING_COLOR$(scm_prompt_info)$BRACKET_COLOR]$normal"
rjorgensone8a4e352011-06-17 06:13:55 -070067 fi
68}
69
rjorgenson2b4f94a2011-06-18 04:42:44 -070070my_prompt_char() {
rjorgenson35e1fe02011-07-08 06:26:22 -070071 if [[ $OSTYPE =~ "darwin" ]]; then
72 echo "${BRACKET_COLOR}➞ ${normal}"
73 else
74 echo "${BRACKET_COLOR}➞ ${normal}"
75 fi
rjorgenson2b4f94a2011-06-18 04:42:44 -070076}
77
rjorgensone8a4e352011-06-17 06:13:55 -070078prompt() {
79
rjorgenson2b4f94a2011-06-18 04:42:44 -070080 my_ps_host="${STRING_COLOR}\h${normal}";
81 my_ps_user="${STRING_COLOR}\u${normal}";
rjorgensona59d7852011-06-17 23:28:57 -070082 my_ps_root="${bold_red}\u${normal}";
rjorgenson2b4f94a2011-06-18 04:42:44 -070083 my_ps_path="${STRING_COLOR}\w${normal}";
rjorgensone8a4e352011-06-17 06:13:55 -070084
85 # nice prompt
86 case "`id -u`" in
rjorgenson2b4f94a2011-06-18 04:42:44 -070087 0) PS1="${TITLEBAR}${BRACKET_COLOR}┌─[$my_ps_root${BRACKET_COLOR}][$my_ps_host${BRACKET_COLOR}]$(modern_scm_prompt)$(__my_rvm_ruby_version)${BRACKET_COLOR}[${STRING_COLOR}\w${BRACKET_COLOR}]$(is_vim_shell)
88${BRACKET_COLOR}└─$(my_prompt_char)${normal}"
rjorgensone8a4e352011-06-17 06:13:55 -070089 ;;
rjorgenson2b4f94a2011-06-18 04:42:44 -070090 *) PS1="${TITLEBAR}${BRACKET_COLOR}┌─[$my_ps_user${BRACKET_COLOR}][$my_ps_host${BRACKET_COLOR}]$(modern_scm_prompt)$(__my_rvm_ruby_version)${BRACKET_COLOR}[${STRING_COLOR}\w${BRACKET_COLOR}]$(is_vim_shell)
rjorgenson35e1fe02011-07-08 06:26:22 -070091${BRACKET_COLOR}└─$(todo_txt_count)$(my_prompt_char)"
rjorgensone8a4e352011-06-17 06:13:55 -070092 ;;
93 esac
94}
95
rjorgenson2b4f94a2011-06-18 04:42:44 -070096PS2="└─$(my_prompt_char)"
rjorgensone8a4e352011-06-17 06:13:55 -070097
98
99
100PROMPT_COMMAND=prompt