Added ulw
[clearscm.git] / rc / functions
index 47db2ca..48c823d 100644 (file)
 ESC=$(echo "\033")
 CR=$(echo "\015")
 
-view_name=
-
-function in_git_repo {
-  pwd=$PWD
-  
-  while [ "$pwd" != "/" ]; do
-    if [ -d "$pwd/.git" ]; then
-      true;
-      return;
-    fi
+export WIZARD="Wizard"
 
-    pwd=$(dirname "$pwd")
-  done
-  
-  false
-} # in_git_repo
+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
@@ -67,8 +59,12 @@ function title_bar {
         "$TERM" = "vt221" ]; then
     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\]"
+  elif [ "$TERM" = "cygwin" -o \
+         "$TERM" = "vt100"  -o \
+         "$TERM" = "xterm"  -o \
+         "$TERM" = "xtermc" -o \
+         "$TERM" = "xterm-256color" ]; then
+    PS1="\[\e]0;$prefix$current_dir\007\]$ROOT\[$B_YELLOW\]$SYSNAME:\[$B_WHITE\]"
   fi
 } # title_bar
 
@@ -96,9 +92,9 @@ function title {
 # view and a string to indicate that you are root.
 function set_title {
   if [ $($id -u) -eq 0 ]; then
-    ROOT="Wizard "
+    root="$WIZARD "
   else
-    ROOT=
+    root=
   fi
 
   view_name=$(scm pwv -short 2> /dev/null);
@@ -109,9 +105,9 @@ function set_title {
 
   if [[ $view_name = *NONE* ]]; then
     view_name=""
-    title_bar "$ROOT"
+    title_bar "$root"
   else
-    title_bar "${ROOT}View: $view_name: "
+    title_bar "${root}View: $view_name: "
   fi
 
   icon_name "${SYSNAME##*:}"
@@ -120,25 +116,31 @@ function set_title {
 # Sets prompt on terminals listed.
 function set_prompt {
   if [ $($id -u) -eq 0 ]; then
-    if [ "$TERM"   = "hpterm" -o \
-         "$TERM"   = "hp"     -o \
-         "$TERM"   = "2392A"  -o \
-         "$TERM"   = "dtterm" -o \
-         ! -z "$DTTERM" ]; then
-      ROOT="${RED}Wizard$NORMAL "
-    elif [ "$TERM" = "vt100" -o \
-           "$TERM" = "xterm" -o \
-          "$TERM" = "vt220" ]; then
-      ROOT="${BOLD}${BLINK}Wizard$NORMAL "
+    if [ "$TERM" = "hpterm"         -o \
+         "$TERM" = "hp"             -o \
+         "$TERM" = "2392A"          -o \
+         "$TERM" = "dtterm"         -o \
+         "$TERM" = "vt100"          -o \
+         "$TERM" = "cygwin"         -o \
+         "$TERM" = "xterm"          -o \
+         "$TERM" = "xtermc"         -o \
+         "$TERM" = "xterm-256color" -o \
+         "$TERM" = "vt220" ]; then
+      ROOT="\[${ROOT_COLOR}\]$WIZARD\[$NORMAL\] "
+    else
+      ROOT="$WIZARD "
     fi
   else
     ROOT=""
   fi
 
-  if [ "$TERM" = "vt100" -o \
-       "$TERM" = "xterm" -o \
+  if [ "$TERM" = "vt100"          -o \
+       "$TERM" = "cygwin"         -o \
+       "$TERM" = "xterm"          -o \
+       "$TERM" = "xtermc"         -o \
+       "$TERM" = "xterm-256color" -o \
        "$TERM" = "vt220" ]; then
-    PS1="$ROOT$BOLD$SYSNAME:$NORMAL"
+    PS1="$ROOT\[$B_YELLOW\]$SYSNAME:\[$B_WHITE\]"
   else
     PS1="$ROOT$SYSNAME:"
   fi
@@ -203,6 +205,18 @@ 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 [ $ARCHITECTURE = "FreeBSD" ]; then
     psopts="-aux"
@@ -214,7 +228,7 @@ function sj {
     ps $psopts | $PAGER
   else
     for str; do
-      ps $psopts | grep "$str" | grep -v "grep $str" | grep -v "grep -d skip"
+      ps $psopts | grep "$str" | grep -ve "grep $str" -e "grep -d skip" -e "grep --color=auto"
     done
   fi
 } # sj
@@ -256,17 +270,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