Added VIRTUAL_PROMPT_ENABLED FLAG
authorRyan Kanno <ryankanno@localkinegrinds.com>
Thu, 9 Jun 2011 22:18:11 +0000 (12:18 -1000)
committerRyan Kanno <ryankanno@localkinegrinds.com>
Thu, 9 Jun 2011 22:18:11 +0000 (12:18 -1000)
Added -e to echo to interpret \
Updated bash conditionals to use [[]]

themes/hawaii50/hawaii50.theme.bash

index 946b808..6202eb4 100644 (file)
@@ -53,12 +53,20 @@ SCM_THEME_PROMPT_CLEAN=' ${bold_green}✓${normal}'
 SCM_THEME_PROMPT_PREFIX=' on '
 SCM_THEME_PROMPT_SUFFIX=''
 
+# rvm prompts
 RVM_THEME_PROMPT_PREFIX=''
 RVM_THEME_PROMPT_SUFFIX=''
 
+# virtualenv prompts
 VIRTUALENV_THEME_PROMPT_PREFIX=''
 VIRTUALENV_THEME_PROMPT_SUFFIX=''
 
+# virtual prompts
+VIRTUAL_PROMPT_ENABLED=1
+
+VIRTUAL_THEME_PROMPT_PREFIX=' using '
+VIRTUAL_THEME_PROMPT_SUFFIX=''
+
 # Max length of PWD to display
 MAX_PWD_LENGTH=20
 
@@ -69,72 +77,76 @@ MAX_GIT_HEX_LENGTH=5
 
 # TODO: Should check with `uname` and use ip addr 
 function ip {
-    echo $(ifconfig en1 | grep "inet " | awk '{ print $2 }')
+    echo -e $(ifconfig en1 | grep "inet " | awk '{ print $2 }')
 }
 
-# Displays using ...
-function virtual_info() {
+# Displays virtual info prompt (virtualenv/rvm)
+function virtual_prompt_info() {
     local virtual_env_info=$(virtualenv_prompt)
     local rvm_info=$(rvm_version_prompt)
+    local virtual_prompt=""
 
-    # If no virtual info, just return
-    [ "$virtual_env_info" == "" -a "$rvm_info" == "" ] && return
+    local prefix=${VIRTUAL_THEME_PROMPT_PREFIX}
+    local suffix=${VIRTUAL_THEME_PROMPT_SUFFIX}
 
-    local prompt=" using"
+    # If no virtual info, just return
+    [[ -z "$virtual_env_info" && -z "$rvm_info" ]] && return
 
     # If virtual_env info present, append to prompt
-    [ "$virtual_env_info" != "" ] && prompt="$prompt virtualenv: ${VE_COLOR}$virtual_env_info${DEFAULT_COLOR}"
+    [[ -n "$virtual_env_info" ]] && virtual_prompt="virtualenv: ${VE_COLOR}$virtual_env_info${DEFAULT_COLOR}"
 
-    if [ "$rvm_info" != "" ]
+    if [[ -n "$rvm_info" ]]
     then
-        [ "$virtual_env_info" != "" ] && prompt="$prompt,"
-        prompt="$prompt rvm: ${RVM_COLOR}$rvm_info${DEFAULT_COLOR}"
+        [[ -n "$virtual_env_info" ]] && virtual_prompt="$virtual_prompt, "
+        virtual_prompt="${virtual_prompt}rvm: ${RVM_COLOR}$rvm_info${DEFAULT_COLOR}"
     fi
-    echo "$prompt"
+    echo -e "$prefix$virtual_prompt$suffix"
 }
 
 # 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}
+        state=${GIT_THEME_PROMPT_DIRTY:-$SCM_THEME_PROMPT_DIRTY}
     else
-      state=${GIT_THEME_PROMPT_CLEAN:-$SCM_THEME_PROMPT_CLEAN}
+        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
-    rawhex=$(git rev-parse HEAD 2>/dev/null) || return
+    commit_id=$(git rev-parse HEAD 2>/dev/null) || return
 
-    echo "$prefix${REF_COLOR}${ref#refs/heads/}${DEFAULT_COLOR}:${rawhex:0:$MAX_GIT_HEX_LENGTH}$state$suffix"
+    echo -e "$prefix${REF_COLOR}${ref#refs/heads/}${DEFAULT_COLOR}:${commit_id:0:$MAX_GIT_HEX_LENGTH}$state$suffix"
 }
 
 # Parse hg info
 function hg_prompt_info() {
     if [[ -n $(hg status 2> /dev/null) ]]; then
-      state=${HG_THEME_PROMPT_DIRTY:-$SCM_THEME_PROMPT_DIRTY}
+        state=${HG_THEME_PROMPT_DIRTY:-$SCM_THEME_PROMPT_DIRTY}
     else
-      state=${HG_THEME_PROMPT_CLEAN:-$SCM_THEME_PROMPT_CLEAN}
+        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}')
 
-    echo "$prefix${REF_COLOR}${branch}${DEFAULT_COLOR}:${changeset#*:}$state$suffix"
+    echo -e "$prefix${REF_COLOR}${branch}${DEFAULT_COLOR}:${changeset#*:}$state$suffix"
 }
 
 # 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}
+        state=${SVN_THEME_PROMPT_DIRTY:-$SCM_THEME_PROMPT_DIRTY}
     else
-      state=${SVN_THEME_PROMPT_CLEAN:-$SCM_THEME_PROMPT_CLEAN}
+        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
-    revision=$(svn info 2> /dev/null | sed -ne 's#^Revision: ##p' )
     [[ -z $ref ]] && return
+
+    revision=$(svn info 2> /dev/null | sed -ne 's#^Revision: ##p' )
+
     echo -e "$prefix${REF_COLOR}$ref${DEFAULT_COLOR}:$revision$state$suffix"
 }
 
@@ -150,21 +162,24 @@ function limited_pwd() {
     then
         local truncated_symbol="..."
         TRUNCATED_PWD=${RELATIVE_PWD:$offset:$MAX_PWD_LENGTH}
-        echo "${truncated_symbol}/${TRUNCATED_PWD#*/}"
+        echo -e "${truncated_symbol}/${TRUNCATED_PWD#*/}"
     else
-        echo "${RELATIVE_PWD}"
+        echo -e "${RELATIVE_PWD}"
     fi
 }
 
 # Displays the current prompt
 function prompt() {
+    local UC=$USER_COLOR
+    [ $UID -eq "0" ] && UC=$SUPERUSER_COLOR
 
-  local UC=$USER_COLOR
-  [ $UID -eq "0" ] && UC=$SUPERUSER_COLOR
-    
-  PS1="$(scm_char) ${UC}\u ${DEFAULT_COLOR}at ${MACHINE_COLOR}\h ${DEFAULT_COLOR}(${IP_COLOR}$(ip)${DEFAULT_COLOR})${DEFAULT_COLOR} in ${DIRECTORY_COLOR}$(limited_pwd)${DEFAULT_COLOR}$(virtual_info)$(scm_prompt_info) \$ "
-  PS2='> '
-  PS4='+ '
+    if [[ $VIRTUAL_PROMPT_ENABLED == 1 ]]; then
+        PS1="$(scm_char) ${UC}\u ${DEFAULT_COLOR}at ${MACHINE_COLOR}\h ${DEFAULT_COLOR}(${IP_COLOR}$(ip)${DEFAULT_COLOR})${DEFAULT_COLOR} in ${DIRECTORY_COLOR}$(limited_pwd)${DEFAULT_COLOR}$(virtual_prompt_info)$(scm_prompt_info) \$ "
+    else
+        PS1="$(scm_char) ${UC}\u ${DEFAULT_COLOR}at ${MACHINE_COLOR}\h ${DEFAULT_COLOR}(${IP_COLOR}$(ip)${DEFAULT_COLOR})${DEFAULT_COLOR} in ${DIRECTORY_COLOR}$(limited_pwd)${DEFAULT_COLOR}$(scm_prompt_info) \$ "
+    fi
+    PS2='> '
+    PS4='+ '
 }
 
 PROMPT_COMMAND=prompt