various improvements
[distro-setup] / brc2
diff --git a/brc2 b/brc2
index b97d0670ea568d2fa9022321c3072bd3da578637..ea1faafd479eb2b1f5128728f71c41a5853fd991 100644 (file)
--- a/brc2
+++ b/brc2
@@ -6,7 +6,10 @@
 
 # * settings
 
-if [[ $HISTFILE ]]; then
+if [[ $LESSHISTFILE == - ]]; then
+  HISTFILE=
+  c() { cd "$@"; }
+elif [[ $HISTFILE ]]; then
   HISTFILE=$HOME/.bh
 fi
 
@@ -22,6 +25,7 @@ path-add --end ~/.local/bin
 path-add --ifexists --end /a/work/libremanage
 path-add --ifexists --end /a/opt/adt-bundle*/tools /a/opt/adt-bundle*/platform-tools
 path-add --ifexists --end /a/opt/scancode-toolkit-3.10.
+path-add --ifexists --end /p/bin
 
 case $HOSTNAME in
   sy|bo)
@@ -110,6 +114,12 @@ rootrsync() {
   s rsync -e "ssh -F /root/.ssh/confighome" "$@"
 }
 
+zcheck() {
+  ssh bow DISPLAY=:0 scrot /tmp/oegu.jpg
+  scp bow:/tmp/oegu.jpg /t
+  ssh bow rm /tmp/oegu.jpg
+  feh /t/oegu.jpg
+}
 
 slemacs() {
   local arg rtime v
@@ -293,19 +303,6 @@ abrowserrmcompat() {
   fi
   ngreset
 }
-ngset() {
-  if shopt nullglob >/dev/null; then
-    ngreset=false
-  else
-    shopt -s nullglob
-    ngreset=true
-  fi
-}
-ngreset() {
-  if $ngreset; then
-    shopt -u nullglob
-  fi
-}
 
 checkre() {
   s checkrestart -b /a/bin/ds/checkrestart-blacklist -pv
@@ -1048,8 +1045,9 @@ hstatus() {
 
 # work log
 wlog() {
-  local day now i
-  for (( i=0; i<60; i++ )); do
+  local day now i days_back
+  days_back=${1:-16}
+  for (( i=0; i<days_back; i++ )); do
     day=$( date +%F -d @$((EPOCHSECONDS - 86400*i )) )
     date "+%a %b %d" -d @$((EPOCHSECONDS - 86400*i )) | tr '\n' ' '
     /a/opt/timetrap/bin/t d -ftotal -s $day -e $day all -m '^w|lunch$'
@@ -1196,6 +1194,7 @@ mnsr() { # mns run
 
 mnsnonet() {
   ns=$1
+  lomh
   if ! s ip netns list | grep -Fx nonet &>/dev/null; then
     s ip netns add nonet
   fi
@@ -1277,48 +1276,60 @@ mp() {
   done
 }
 
-# these might need a mu index or something added.
-mbenable() {
-  local mb=$1
-  dst=/m/4e/$mb
-  src=/m/md/$mb
-  [[ -e $src ]] || { echo "src:$src does not exist"; return 1; }
-  m mv -T $src $dst
-  m ln -s -T $dst $src
-}
-mb2enable() {
-  local mb
-  for mb; do
-    dst=/m/4e2/$mb
-    link=/m/md/$mb
-    src=/m/md/$mb
-    if [[ ! -e $src || -L $src ]]; then
-      src=/m/4e/$mb
+# maildir enable
+mdenable() {
+  local md dst ln_path src two
+
+  two=false
+  case $1 in
+    -2) two=true shift ;;
+  esac
+
+  for md; do
+    src=
+    if $two; then
+      dst=/m/4e2/$md
+    else
+      dst=/m/4e/$md
+    fi
+
+    ln_path=/m/md/$md
+    for d in /m/md/$md /m/4e2/$md; do
+      if [[ -d $d && ! -L $d ]]; then
+        src=$d
+        break
+      fi
+    done
+    if [[ ! $src ]]; then
+      echo "error: could not find $md" >&2
+      return 1
     fi
-    [[ -e $src ]] || { echo "src:$src does not exist"; return 1; }
     m mv -T $src $dst
-    m ln -sf -T $dst $link
+    m ln -sf -T $dst $ln_path
   done
 }
-mbdisable() {
-  local mb=$1
-  dst=/m/md/$mb
-  src=/m/4e/$mb
-  set -x
-  [[ -e $src ]] || { set +x; return 1; }
-  if [[ -L $dst ]]; then rm $dst; fi
-  mv -T $src $dst
-  set +x
+md2enable() {
+  mdenable -2 "$@"
 }
-mb2disable() {
-  local mb=$1
-  dst=/m/md/$mb
-  src=/m/4e2/$mb
-  set -x
-  [[ -e $src ]] || { set +x; return 1; }
-  if [[ -L $dst ]]; then rm $dst; fi
-  mv -T $src $dst
-  set +x
+mddisable() {
+  local md=$1
+  dst=/m/md/$md
+
+  ### begin copied from mdenable, but different d ###
+  for d in /m/4e/$md /m/4e2/$md; do
+    if [[ -d $d && ! -L $d ]]; then
+      src=$d
+      break
+    fi
+  done
+  if [[ ! $src ]]; then
+    echo "error: could not find $md" >&2
+    return 1
+  fi
+  ### end copy from mdenable ###
+
+  if [[ -L $dst ]]; then m rm $dst; fi
+  m mv -T $src $dst
 }
 
 
@@ -1397,8 +1408,8 @@ mpvm() {
   arg+=(")")
   dir=${1:-.}
   # debug:
-  #find $dir "${arg[@]}" -size +1M
-  find $dir "${arg[@]}" -size +1M -exec mpv --profile=d '{}' +
+  #find $dir "${arg[@]}" -size +200k
+  find $dir "${arg[@]}" -size +200k -exec mpv --profile=d '{}' +
 }
 mpvs() {
   mpv --profile=s "$@";
@@ -1425,7 +1436,8 @@ allmyirc() {
 }
 
 mygajim() {
-  local time time_sec time_pretty
+  local time time_sec time_pretty days
+  days=${1:-16}
   sqlite3 -separator ' ' /p/c/subdir_files/.local/share/gajim/logs.db "select time, message from logs where contact_name = 'iank' and jid_id = 17;" | while read -r time l; do
     case $time in
       16*) : ;;
@@ -1438,7 +1450,7 @@ mygajim() {
     echo $time_pretty "$l"
     time_sec=${time%%.*}
     # only look at the last 18 days. generally just use this for timesheet.
-    if (( time_sec < EPOCHSECONDS - 60 * 60 * 24 * 18 )); then break; fi
+    if (( time_sec < EPOCHSECONDS - 60 * 60 * 24 * days )); then break; fi
   done
 }
 
@@ -1450,6 +1462,11 @@ gajlogs() {
   sqlite3 -separator ' ' /p/c/subdir_files/.local/share/gajim/logs.db "select time, message from logs" | less
 }
 
+# slow down ploopy trackball
+ploop() {
+xinput --set-prop $(xinput list | grep -F 'Ploopy Corporation Trackball Mouse' | sed -rn 's/.*[[:space:]]id=([^[:space:]]*).*/\1/p') 'libinput Accel Speed' -0.9
+}
+
 net-dev-info() {
   e "lspci -nnk|gr -iA2 net"
   lspci -nnk|gr -iA2 net
@@ -1554,6 +1571,7 @@ rebr() {
 }
 
 
+r2e() { command r2e -d /p/c/rss2email.json -c /p/c/rss2email.cfg "$@"; }
 # only run on MAIL_HOST. simpler to keep this on one system.
 r2eadd() { # usage: name url
   # initial setup of rss2email:
@@ -1572,7 +1590,6 @@ r2eadd() { # usage: name url
   # get up to date and dont send old entries now:
   r2e run --no-send $1
 }
-r2e() { command r2e -d /p/c/rss2email.json -c /p/c/rss2email.cfg "$@"; }
 
 rspicy() { # usage: HOST DOMAIN
   # connect to spice vm remote host. use vspicy for local host
@@ -1731,16 +1748,28 @@ EOF
   fi
 }
 
-# alert when a page goes live. not urgent.
+# alert when a page goes live.
 alert200() {
+  local quiet url tmpdir
+  quiet=false
+  case $1 in
+    # dont send a diff of the html. some html is not very readable
+    -q) quiet=true
+        shift
+        ;;
+  esac
   url="$1"
   tmpdir="$(mktemp -d)"
   cd $tmpdir
   while true; do
-    if torsocks wget -q "$url"; then
-      alertme $tmpdir
+    if wget -q "$url"; then
+      if $quiet; then
+        echo | daylert 200
+      else
+        alertme $tmpdir
+      fi
     fi
-    sleep $(( 600 + RANDOM % 300 ))
+    sleep $(( 120 + RANDOM % 300 ))
   done
 }
 
@@ -1802,15 +1831,29 @@ testexim() {
   #  exim -t 'test@zroe.org, t2@zroe.org'  <<'EOF'
   #
   # -t = get recipient from header
-  exim -d -t <<'EOF'
-From: root@$(hostname-f)
-To: root@$(hostname-f)
+  exim -d -t <<EOF
+From: root@$(hostname -f)
+To: root@$(hostname -f)
 Subject: test2
 
 This is a test message.
 EOF
 }
 
+# test bounce exim
+testbexim() {
+  to=$1
+  exim -d -f '<>' $to <<EOF
+From: Mail Delivery System <Mailer-Daemon@gnu.org>
+To: $to
+Subject: Mail delivery failed: returning message to sender
+
+This message was created automatically by mail delivery software.
+EOF
+
+}
+
+
 # toggle keyboard
 tk() {
   # based on
@@ -1915,6 +1958,18 @@ sdnbash() { # systemd namespace bash
   m sudo nsenter -t $pid -n -m sudo -u $USER -i bash
 }
 
+sdnbashroot() { # systemd namespace bash
+  local unit pid
+  if (( $# != 1 )); then
+    echo $0: error wrong number of args >&2
+    return 1
+  fi
+  unit=$1
+  pid=$(servicepid $unit)
+  m sudo nsenter -t $pid -n -m bash
+}
+
+
 sdncmd() { # systemd namespace cmd
   local unit pid
   if (( $# <= 2 )); then