]> git.phdru.name Git - dotfiles.git/blobdiff - admin/prog/bash_prompt
Refactor(.shellrc): Test for `mc` down the stack
[dotfiles.git] / admin / prog / bash_prompt
index eb152c933d7c369d68685166c8c5d26f5cf3da7d..f18379d852899f3ae2ef512bf739a230bee5608c 100644 (file)
@@ -69,6 +69,20 @@ prompt_git() {
                       git rev-parse --short HEAD 2> /dev/null || \
                       printf "(unknown)")"
 
+        up=`git rev-parse --abbrev-ref @{u} 2>/dev/null`
+        if [ -n "$up" -a "$up" != "@{u}" ]; then
+            local left right
+            set -- `git rev-list --count --left-right @{u}...HEAD`
+            left=$1
+            right=$2
+            if [ "$left" -gt 0 ]; then
+                s="$s-$left"
+            fi
+            if [ "$right" -gt 0 ]; then
+                s="$s+$right"
+            fi
+        fi
+
         [ -n "$s" ] && s=" $s"
         printf " (%s)" "$branchName$s"
     fi
@@ -89,15 +103,18 @@ prompt_git() {
 
 set_prompts() {
       OPS1=''
+      local _COMMON_PROMPT='${debian_chroot:+($debian_chroot)}\u@\h:\w'
       # display the user, host and current working directory
       # in the terminal title
       case "$TERM" in
          *rxvt*|screen*|*term*|vt100)
-            OPS1+="\[\033]0;${debian_chroot:+($debian_chroot)}\u@\h:\w\007\]"
+            OPS1="\[\033]0;${_COMMON_PROMPT}\007\]" # Set xterm title/icon
             case "$TERM" in
                screen*)
-                  OPS1+="\[\033k${debian_chroot:+($debian_chroot)}"
-                  OPS1+="\u@\h:\w\033\\\\\]" # Set screen/tmux caption
+                  OPS1="\[\033P\033]0;${_COMMON_PROMPT}\007\033\\\\\]" # Set xterm title/icon under screen/tmux
+                  if [ -z "$MC_SID" ]; then
+                     OPS1+="\[\033k${_COMMON_PROMPT}\033\\\\\]" # Set screen/tmux caption
+                  fi
                ;;
             esac
          ;;
@@ -107,17 +124,17 @@ set_prompts() {
          ;;
       esac
 
-   OPS1+="${debian_chroot:+($debian_chroot)}"
-   OPS1+="\`cgmem_which_prompt\`\u@\${HOSTNAME::5}:\`short_curdir\`"
+   OPS1+='${debian_chroot:+($debian_chroot)}'
+   OPS1+='`cgmem_which_prompt`\u@${HOSTNAME::5}:`short_curdir`'
    if test -x /usr/bin/git >/dev/null 2>&1; then
       #if [ "`type -t __git_ps1`" = function ]; then
-      #   OPS1+="\$(__git_ps1)"
+      #   OPS1+='$(__git_ps1)'
       #else
-         OPS1+="\$(prompt_git)"
+         OPS1+='$(prompt_git)'
       #fi
    fi
    # This is for .screenrc: shelltitle "\$ |$SHELL"
-   #OPS1+="\[\033k\033\\\\\]"
-   OPS1+=" \$SHLVL\\$ "
+   #OPS1+='\[\033k\033\\\]'
+   OPS1+=' $SHLVL\$ '
    export OPS1
 }