From: Ian Kelling Date: Sun, 30 Oct 2022 04:42:39 +0000 (-0400) Subject: minor fixes and improvements X-Git-Url: https://iankelling.org/git/?a=commitdiff_plain;h=110b15e4a7b19cc520d2aa3f2584f4213b94f5b7;p=distro-setup minor fixes and improvements --- diff --git a/brc b/brc index a3724fa..ff3b91f 100644 --- a/brc +++ b/brc @@ -878,6 +878,11 @@ ediff() { # mail related etail() { + ngset + tail -F /var/log/exim4/mainlog /var/log/exim4/*main -n 200 "$@" + ngreset +} +etailm() { tail -F /var/log/exim4/mainlog -n 200 "$@" } etail2() { @@ -886,6 +891,7 @@ etail2() { ccomp tail etail etail2 + # print exim old pids eoldpids() { local configtime pid piduptime now daemonpid @@ -1419,9 +1425,33 @@ nmt() { esac } + +ngset() { + if shopt nullglob >/dev/null; then + ngreset=false + else + shopt -s nullglob + ngreset=true + fi +} +ngreset() { + if $ngreset; then + shopt -u nullglob + fi +} + nopanic() { # shellcheck disable=SC2024 - sudo tee -a /var/log/exim4/paniclog-archive ▁▁▃▂▇ + +# The MIT License +# Copyright (c) Zach Holman, https://zachholman.com +# https://github.com/holman/spark + +# As of 2022-10-28, I reviewed github forks that had several newer +# commits, none had anything interesting. I did a little refactoring +# mostly to fix emacs indent bug. + +# Generates sparklines. +_spark_echo() +{ + if [ "X$1" = "X-n" ]; then + shift + printf "%s" "$*" + else + printf "%s\n" "$*" + fi +} + + +spark() +{ + local f tc + local n numbers= + + # find min/max values + local min=0xffffffff max=0 + + for n in ${@//,/ } + do + # on Linux (or with bash4) we could use `printf %.0f $n` here to + # round the number but that doesn't work on OS X (bash3) nor does + # `awk '{printf "%.0f",$1}' <<< $n` work, so just cut it off + n=${n%.*} + (( n < min )) && min=$n + (( n > max )) && max=$n + numbers=$numbers${numbers:+ }$n + done + + # print ticks + local ticks=(▁ ▂ ▃ ▄ ▅ ▆ ▇ █) + + # use a high tick if data is constant + (( min == max )) && ticks=(▅ ▆) + + tc=${#ticks[@]} + f=$(( ( (max-min) <<8)/( tc - 1) )) + (( f < 1 )) && f=1 + + for n in $numbers + do + _spark_echo -n ${ticks[$(( ((($n-$min)<<8)/$f) ))]} + done + _spark_echo +} + + # * misc stuff diff --git a/brc2 b/brc2 index 346f8da..754f9a0 100644 --- a/brc2 +++ b/brc2 @@ -119,7 +119,7 @@ zcheck() { s scp bow:/tmp/oegu.jpg /t s ssh bow rm /tmp/oegu.jpg feh /t/oegu.jpg - } +} slemacs() { local arg rtime v @@ -303,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 @@ -1288,48 +1275,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 } @@ -1825,9 +1824,9 @@ 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 </dev/null; then export XDG_RUNTIME_DIR=/run/user/1000 - bufs="$(emacsclient --eval "$(cat /a/bin/ds/unsaved-buffers.el)"| sed '/^"nil"$/d;s/^"(/E: /;s/)"$//')" + bufs="$(sudo -u iank emacsclient --eval "$(cat /a/bin/ds/unsaved-buffers.el)"| sed '/^"nil"$/d;s/^"(/E: /;s/)"$//')" if [[ $bufs ]]; then echo "error: on $HOSTNAME, unsaved emacs files: $bufs" >&2 exit 1 @@ -219,7 +219,7 @@ EOF $old_shell bash -s <<'EOF' if pgrep -G iank -u iank -f 'emacs --daemon' &>/dev/null; then export XDG_RUNTIME_DIR=/run/user/1000 - bufs="$(emacsclient --eval "$(cat /a/bin/ds/unsaved-buffers.el)"| sed '/^"nil"$/d;s/^"(/E: /;s/)"$//')" + bufs="$(sudo -u iank emacsclient --eval "$(cat /a/bin/ds/unsaved-buffers.el)"| sed '/^"nil"$/d;s/^"(/E: /;s/)"$//')" if [[ $bufs ]]; then echo "error: on $HOSTNAME, unsaved emacs files: $bufs" >&2 exit 1