Minor changes to webchord.cgi and vimrc
[clearscm.git] / rc / functions
index fd373a2..6b42f09 100644 (file)
@@ -19,7 +19,13 @@ view_name=
 
 # Function to set the title bar. Works on the terminal emulators listed.
 function title_bar {
+  if [ $# -gt 1 ]; then
+    ROOT=shift
+    ROOT="${NORMAL}\($ROOT\)"
+  fi
+
   prefix="$@"
+
   # Change $HOME -> ~
   if [ "${PWD#$HOME*}" != "$PWD" ]; then
     current_dir="~${PWD#$HOME*}"
@@ -38,6 +44,11 @@ function title_bar {
     current_dir="$current_dir ($(cat CVS/Root | tr -d $CR))"
   fi
 
+  # Add GIT info if available
+  if in_git_repo; then
+    current_dir="$current_dir [git: $(git branch | sed -n -e 's/^\* \(.*\)/\1/p')]"
+  fi
+
   if [ "$TERM" = "hpterm" -o \
        "$TERM" = "hp"     -o \
        "$TERM" = "2392A" ]; then
@@ -48,7 +59,8 @@ function title_bar {
     string=$(echo "${SYSNAME##*:}:$@")
     echo -n "${ESC}]2;$string\007"
   elif [ "$TERM" = "cygwin" -o "$TERM" = "vt100" -o "$TERM" = "xterm" ]; then
-    PS1="\[\e]0;$prefix$current_dir\a\e[01;33m\]$SYSNAME:\[\e[0m\]"
+    # Here's where we set the prompt with root
+    PS1="\[\e]0;$prefix$current_dir\a$AQUA\]$ROOT\[$YELLOW\]$SYSNAME:\[$NORMAL\]"
   fi
 } # title_bar
 
@@ -91,7 +103,7 @@ function set_title {
     view_name=""
     title_bar "$ROOT"
   else
-    title_bar "${ROOT}View: $view_name: "
+    title_bar "$ROOT" "View: $view_name: "
   fi
 
   icon_name "${SYSNAME##*:}"
@@ -183,8 +195,20 @@ function ssh {
   set_prompt
 } # ssh
 
+function processRunning {
+  if [ $ARCHITECTURE = "FreeBSD" ]; then
+    psopts="-aux"
+  else
+    psopts="-ef"
+  fi
+
+  if [ $1 != '' ]; then
+    return $(ps $psopts | grep "$1" | grep -v "grep $1" | grep -v "grep -d skip" | wc -l)
+  fi
+} # processRunning
+
 function sj {
-  if [ $ARCH = "FreeBSD" ]; then
+  if [ $ARCHITECTURE = "FreeBSD" ]; then
     psopts="-aux"
   else
     psopts="-ef"
@@ -236,17 +260,47 @@ function cmdline {
 } # cmdline
 
 function user {
+  processRunning ypbind;  ypbind=$?
+  processRunning winbind; winbind=$?
+
   if [ $# -gt 0 ]; then
-    ypcat passwd | grep -i $@
+    if [ $ypbind -gt 0 ]; then
+      ypcat passwd | grep -i $@
+    elif [ $winbind -gt 0 ]; then
+      for user in $(wbinfo -u | grep -i $@); do
+        wbinfo --user-info $user
+      done
+    fi
   else
-    ypcat passwd | $PAGER
+    if [ $ypbind -gt 0 ]; then
+      ypcat passwd | $PAGER
+    elif [ $wbind -gt 0 ]; then
+      for user in $(wbinfo -u); do
+        wbinfo --user-info $user
+      done | $PAGER
+    fi
   fi
 } # user
 
 function group {
+  processRunning ypbind;  ypbind=$?
+  processRunning winbind; winbind=$?
+
   if [ $# -gt 0 ]; then
-    ypcat group | grep -i $@
+    if [ $ypbind -gt 0 ]; then
+      ypcat group | grep -i $@
+    elif [ $winbind -gt 0 ]; then
+      for group in $(wbinfo -g | grep -i $@); do
+        wbinfo --group-info $group
+      done
+    fi
   else
-    ypcat group | $PAGER
+    if [ $ypbind -gt 0 ]; then
+      ypcat group | $PAGER
+    elif [ $winbind -gt 0 ]; then
+      for group in $(wbinfo -g); do
+        wbinfo --group-info $group
+      done | $PAGER
+    fi
   fi
 } # group