robustness
[distro-setup] / brc
diff --git a/brc b/brc
index ee6ca1995c27321775cbd88f2a4144b45a926875..1d6e833471c67ee4eb472a2f24957d215504aeb3 100644 (file)
--- a/brc
+++ b/brc
@@ -628,6 +628,12 @@ dus() { # du, sorted, default arg of
 
 e() { echo "$@"; }
 
+# echo var. print var including escapes, etc
+ev() {
+  printf "%qEOL\n" "${!1}"
+  printf "%s" "${!1}" |& hexdump -C
+}
+
 
 ediff() {
   [[ ${#@} == 2 ]] || { echo "error: ediff requires 2 arguments"; return 1; }
@@ -646,7 +652,10 @@ envload() { # load environment from a previous: export > file
 
 # mail related
 etail() {
-  sudo tail -F /var/log/exim4/mainlog -n 50
+  tail -F /var/log/exim4/mainlog -n 200
+}
+eless() {
+  less /var/log/exim4/mainlog
 }
 
 f() {
@@ -1435,7 +1444,10 @@ q() { # start / launch a program in the backround and redir output to null
 }
 
 r() {
-  exit "$@" 2>/dev/null
+  history -a # save history
+  exit "$@"
+  # i had this redir, not sure why
+#  exit "$@" 2>/dev/null
 }
 
 rbpipe() { rbt post -o --diff-filename=- "$@"; }
@@ -1942,7 +1954,6 @@ psnetns() {
 
 m() { printf "%s\n" "$*";  "$@"; }
 
-
 vpncmd() {
   #m s nsenter -t $(pgrep -f "/usr/sbin/openvpn .* --config /etc/openvpn/.*pia.conf") -n -m "$@"
   m s nsenter -t $(pgrep -f "/usr/sbin/openvpn .* --config /etc/openvpn/.*client.conf") -n -m "$@"
@@ -2081,44 +2092,16 @@ match_lhs=""
 
 if ${use_color} && [[ $- == *i* ]]; then
 
-  if [[ $XTERM_VERSION == Cygwin* ]]; then
-    get_term_color() {
-      for x in "$@"; do
-        case $x in
-         underl) echo -n $'\E[4m' ;;
-         bold) echo -n $'\E[1m' ;;
-         red) echo -n $'\E[31m' ;;
-         green) echo -n $'\E[32m' ;;
-         blue) echo -n $'\E[34m' ;;
-         cyan) echo -n $'\E[36m' ;;
-         yellow) echo -n $'\E[33m' ;;
-         purple) echo -n $'\E[35m' ;;
-         nocolor) echo -n $'\E(B\E[m' ;;
-        esac
-      done
-    }
+  term_underl="$(tput smul)"
+              term_bold="$(tput bold)"
+              term_red="$(tput setaf 1)"
+              term_green="$(tput setaf 2)"
+              term_blue="$(tput setaf 4)"
+              term_cyan="$(tput setaf 6)"
+              term_yellow="$(tput setaf 3)"
+              term_purple="$(tput setaf 5)"
+              term_nocolor="$(tput sgr0)" # no font attributes
 
-  else
-    get_term_color() {
-      for x in "$@"; do
-        case $x in
-         underl) echo -n $(tput smul) ;;
-         bold) echo -n $(tput bold) ;;
-         red) echo -n $(tput setaf 1) ;;
-         green) echo -n $(tput setaf 2) ;;
-         blue) echo -n $(tput setaf 4) ;;
-         cyan) echo -n $(tput setaf 6) ;;
-         yellow) echo -n $(tput setaf 3) ;;
-         purple) echo -n $(tput setaf 5) ;;
-         nocolor) echo -n $(tput sgr0) ;; # no font attributes
-        esac
-      done
-    }
-  fi
-else
-  get_term_color() {
-    :
-  }
 fi
 # Try to keep environment pollution down, EPA loves us.
 unset safe_term match_lhs use_color
@@ -2161,50 +2144,39 @@ if [[ $- == *i* ]]; then
     PS1="\h $PS1"
   fi
 
+  # emacs terminal has problems if this runs slowly,
+  # so I've thrown a bunch of things at the wall to speed it up.
   prompt-command() {
     local return=$? # this MUST COME FIRST
     local psc pst ps_char ps_color stale_subvol
     unset IFS
     history -a # save history
 
-
-
     case $return in
-      0) ps_color="$(get_term_color purple)"
+      0) ps_color="$term_purple"
          ps_char='\$'
          ;;
-      1) ps_color="$(get_term_color green)"
+      1) ps_color="$term_green"
          ps_char="$return \\$"
          ;;
-      *) ps_color="$(get_term_color yellow)"
+      *) ps_color="$term_yellow"
          ps_char="$return \\$"
          ;;
     esac
     if [[ ! -O . ]]; then # not owner
       if [[ -w . ]]; then # writable
-       ps_color="$(get_term_color bold red)"
+       ps_color="$term_bold$term_red"
       else
-       ps_color="$(get_term_color bold green)"
+       ps_color="$term_bold$term_green"
       fi
     fi
-    # I would set nullglob, but bash has had bugs where that
-    # doesnt work if not in top level.
-    if [[ -e /nocow/btrfs-stale ]] && ((`command ls -AUq /nocow/btrfs-stale|wc -l`)); then
-      ps_char="! $ps_char"
-    fi
-    if test -e /m/md/bounces/new/*; then
-      ps_char='!BOUNCE! '"$ps_char"
-    fi
-    if [[ -e /nocow/user/mailtest-failure ]]; then
-      ps_char='!MAILPING! '"$ps_char"
-    fi
-    source /a/bin/bash_unpublished/source-state
+
+    # faster than sourceing the file im guessing
+    eval $(< /dev/shm/iank-status)
     if [[ ! $SSH_CLIENT && $MAIL_HOST != $HOSTNAME ]]; then
       ps_char="@ $ps_char"
     fi
-    PS1="${PS1%"${PS1#*[wW]}"} \[$ps_color\]$ps_char\[$(get_term_color nocolor)\] "
-    # emacs completion doesnt like the git prompt atm, so disabling it.
-    #PS1="${PS1%"${PS1#*[wW]}"}$(__git_ps1 ' (%s)') \[$ps_color\]$ps_char\[$(get_term_color nocolor)\] "
+    PS1="${PS1%"${PS1#*[wW]}"} \[$ps_color\]$ps_char\[$term_nocolor\] "
   }
   PROMPT_COMMAND=prompt-command