dot/gitconfig.in: Get `git merge' to include ancestor text in conflicts.
[profile] / dot / bashrc
index a7173f7..8dc678b 100644 (file)
@@ -35,10 +35,13 @@ if [ -t 0 ]; then
        "") bold="\[$(tput md)\]" unbold="\[$(tput me)\]" ;;
        *) bold="\[$(tput bold)\]" unbold="\[$(tput sgr0)\]" ;;
       esac
+      gitcolour="\[$(tput setaf 6)\]"
+      rccolour="\[$(tput setaf 1)\]"
+      uncolour="\[$(tput op)\]"
       nl="\[\r\]"
       ;;
     *)
-      bold='' unbold='' nl='' ;;
+      bold='' unbold='' nl='' gitcolour='' rccolour='' uncolour='';;
   esac
 
   ## Choose the right delimiters.  Highlight root prompts specially;
@@ -60,16 +63,29 @@ if [ -t 0 ]; then
   fi
 
   ## If this session is insecure then highlight that.
-  if [ -z "$SSH_CLIENT" ] &&
-    [ "$__mdw_sechost" != "`hostname`" ]
-    then
+  if [ -z "$SSH_CLIENT" ] && [ -z "$SCHROOT_CHROOT_NAME" ] &&
+     [ "$__mdw_sechost" != "`hostname`" ]
+  then
     sec_l='(' sec_r=')'
   fi
 
+  ## If this is an schroot environment then point this out.
+  hqual=""
+  hqual="$hqual${SCHROOT_CHROOT_NAME+/$SCHROOT_CHROOT_NAME}"
+
   ## Build the prompt string.
-  PS1="$nl$bold$left$sec_l$u\\h$sec_r \\w$marker$right$unbold"
+  git="" rc=""
+  if [[ ${BASH_VERSINFO[0]} -ge 4 ]]; then
+    if type __git_ps1 >/dev/null 2>&1; then
+      git="$unbold$gitcolour\$(rc=\$?;__git_ps1;exit \$rc)$uncolour$bold"
+    fi
+    rc="$unbold$rccolour\$(rc=\$?;case \$rc in 0);;"
+    rc="$rc*)echo -n \" rc=\$rc\";;esac;exit \$rc)$uncolour$bold"
+  fi
+  PS1="$nl$bold$left$sec_l$u\\h$hqual$sec_r \\w$git$rc$marker$right$unbold"
   PS2="$PS1 $bold>$unbold "
   unset nl bold unbold left right sec_l sec_r marker
+  unset gitcolour rccolour uncolour git rc hqual
 fi
 
 ###--------------------------------------------------------------------------
@@ -381,3 +397,5 @@ fi
 fi
 
 ###----- That's all, folks --------------------------------------------------
+
+: