X-Git-Url: https://defaria.com/gitweb/?a=blobdiff_plain;f=rc%2Ffunctions;h=48c823d511b1c874e431bfcd3444fe420412b36a;hb=ed09d3e6cfee4750b6af971bc1baea940b5800ba;hp=39f705839fc1fb22101e26683b029a06e5a3b2fd;hpb=ff931f218b9cbe67dd971467ad799c396896defc;p=clearscm.git diff --git a/rc/functions b/rc/functions index 39f7058..48c823d 100644 --- a/rc/functions +++ b/rc/functions @@ -15,6 +15,8 @@ ESC=$(echo "\033") CR=$(echo "\015") +export WIZARD="Wizard" + view_name= # Function to set the title bar. Works on the terminal emulators listed. @@ -23,9 +25,8 @@ function title_bar { ROOT=shift ROOT="${NORMAL}\($ROOT\)" fi - + prefix="$@" - # Change $HOME -> ~ if [ "${PWD#$HOME*}" != "$PWD" ]; then current_dir="~${PWD#$HOME*}" @@ -58,9 +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 - # Here's where we set the prompt with root - PS1="\[\e]0;$prefix$current_dir\a$AQUA\]$ROOT\[$YELLOW\]$SYSNAME:\[$NORMAL\]" + 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 @@ -88,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); @@ -101,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##*:}" @@ -112,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 @@ -195,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" @@ -206,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 @@ -248,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