X-Git-Url: https://iankelling.org/git/?a=blobdiff_plain;f=brc;h=382b3627ded5e67a98c6c9fa71fbca675151e9b4;hb=9a067ce7270718043c0a725aa8c97ea75afdf96c;hp=b163a093094e0689b9c3477b6683f48d79cddbe4;hpb=8c9f3c9c69a1f76d8ffba1343fc0ab308fb4661a;p=distro-setup diff --git a/brc b/brc index b163a09..382b362 100644 --- a/brc +++ b/brc @@ -272,7 +272,7 @@ _khfix_common() { local h=${1##*@} local x ssh-keygen -R $h -f $(readlink -f ~/.ssh/known_hosts) - x=$(timeout 1 ssh -oBatchMode=yes -v $1 |& sed -rn "s/debug1: Connecting to $h \[([^\]*)].*/\1/p") + x=$(timeout 1 ssh -oBatchMode=yes -oControlMaster=no -oControlPath=/ -v $1 |& sed -rn "s/debug1: Connecting to $h \[([^\]*)].*/\1/p") if [[ ! $x ]]; then echo "khfix: ssh failed" return 1 @@ -380,7 +380,7 @@ cam() { } ccat () { # config cat. see a config without extra lines. - grep '^\s*[^[:space:]#]' "$@" + grep '^\s*[^;[:space:]#]' "$@" } cdiff() { @@ -514,6 +514,11 @@ envload() { # load environment from a previous: export > file done < "$file" } +# mail related +etail() { + sudo tail -f /var/log/exim4/mainlog +} + f() { # cd forward c + @@ -541,8 +546,24 @@ fastboot() { /a/opt/androidsdk/platform-tools/fastboot "$@"; } # Create from existing manually installed apps by doing # fdroidcl search -i, then manually removing # automatically installed/preinstalled apps + +# firefox updater. commented out, firefox depends on nonfree opengl. +# de.marmaro.krt.ffupdater +# # causes replicant to die on install and go into a boot loop +# me.ccrama.redditslide +# +# # my attempt at recovering from boot loop: +# # in that case, boot to recovery (volume up, home button, power, let go of power after samsun logo) +# # then +# mount /dev/block/mmcblk0p12 /data +# cd /data +# find -iname '*appname*' +# rm -rf FOUND_DIRS +# usually good enough to just rm -rf /data/app/APPNAME +# +# currently broken: +#at.bitfire.davdroid fdroid_pkgs=( - at.bitfire.davdroid com.alaskalinuxuser.justnotes com.artifex.mupdfdemo com.fsck.k9 @@ -554,10 +575,8 @@ fdroid_pkgs=( com.zoffcc.applications.zanavi cz.martykan.forecastie de.danoeh.antennapod - de.marmaro.krt.ffupdater im.vector.alpha # riot info.papdt.blackblub - me.ccrama.redditslide me.tripsit.tripmobile net.gaast.giggity net.osmand.plus @@ -689,6 +708,29 @@ feh() { command feh -FzZ "$@" } +# mail related +frozen() { + rm -rf /tmp/frozen + s mailq |gr frozen|awk '{print $3}' | while read -r id; do + s exim -Mvl $id + echo + s exim -Mvh $id + echo + s exim -Mvb $id + echo -e '\n\n##############################\n' + done | tee -a /tmp/frozen +} +frozenrm() { + local ids=() + while read -r line; do + printf '%s\n' "$line" + ids+=($(printf '%s\n' "$line" |gr frozen|awk '{print $3}')) + done < <(s mailq) + echo "sleeping for 2 in case you change your mind" + sleep 2 + s exim -Mrm "${ids[@]}" +} + funce() { # like -e for functions. returns on error. # at the end of the function, disable with: @@ -956,6 +998,8 @@ mbenable() { set -x mv -T $src $dst || { set +x; return 1; } ln -s -T $dst $src + /a/exe/lnf /p/.mu ~ + mu index --maildir=/m/4e set +x } mbdisable() { @@ -1135,6 +1179,7 @@ rlu() { # [OPTS] HOST PATH s rsync -rlpchviog --relative "${opts[@]}" "$path" "root@$host:/"; } +# only run on desktop. simpler to keep this on one system. r2eadd() { # usage: name url # initial setup of rss2email: # r2e new r2e@iankelling.org @@ -1330,6 +1375,10 @@ srun() { ssh $1 /tmp/${2##*/} "${@:2}" } +sss() { # ssh solo + ssh -oControlMaster=no -oControlPath=/ "$@" +} + swap() { local tmp tmp=$(mktemp) @@ -1399,6 +1448,7 @@ te() { return $ret } +# mail related testmail() { declare -gi _seq; _seq+=1 echo "test body" | m mail -s "test mail from $HOSTNAME, $_seq" "${@:-root@localhost}" @@ -1409,7 +1459,8 @@ testmail() { # MSG_ID is in /var/log/exim4/mainlog, looks like 1ccdnD-0001nh-EN } -# to test sieve, use below command. make modifications, then copy to live file, use -eW to actually modify mailbox +# to test sieve, use below command. for fsf mail, see fsf-get-mail script. +# make modifications, then copy to live file, use -eW to actually modify mailbox # cp /p/c/subdir_files/sieve/personal{test,}.sieve; testsievelist -eW INBOX # # Another option is to use sieve-test SCRIPT MAIL_FILE. note, @@ -1417,17 +1468,19 @@ testmail() { # sieve with output filter. arg is mailbox, like INBOX. # This depends on dovecot conf, notably mail_location in /etc/dovecot/conf.d/10-mail.conf -# + testsievelist() { sieve-filter ~/sieve/maintest.sieve "$@" >/tmp/testsieve.log 2> >(tail) && sed -rn '/^Performed actions:/{n;n;p}' /tmp/testsieve.log | sort -u } +# mail related # plain sieve testsieve() { sieve-filter ~/sieve/main.sieve "$@" } +# mail related testexim() { # testmail above calls sendmail, which is a link to exim/postfix. # it's docs don't say a way of adding an argument @@ -1455,6 +1508,13 @@ tm() { (sleep $(calc "$@ * 60") && mpv --no-config --volume 50 /a/bin/data/alarm.mp3) > /dev/null 2>&1 & } +trg() { transmission-remote-gtk&r; } +trc() { + # example, set global upload limit to 100 kilobytes: + # trc -u 100 + TR_AUTH=":$(jq -r .profiles[0].password ~/.config/transmission-remote-gtk/config.json)" transmission-remote transmission.lan -ne "$@" +} + tu() { local s; @@ -1503,22 +1563,6 @@ vpnbash() { } -trg() { transmission-remote-gtk&r; } - -# transmission() { -# local pid=$(cat /var/lib/transmission-daemon/transmission-daemon.pid) -# if [[ $pid && -e /proc/$pid ]]; then -# echo "noop. already running." -# return -# fi - -# local NAME=transmission-daemon -# local DAEMON=/usr/bin/$NAME -# local duser=debian-transmission - -# [ -e /etc/default/$NAME ] && . /etc/default/$NAME -# s ip netns exec vpn sudo -u $duser ionice -c 3 nice -n 19 $DAEMON $OPTIONS -# } virshrm() { for x in "$@"; do virsh destroy "$x"; virsh undefine "$x"; done @@ -1549,6 +1593,12 @@ vpn() { [[ $1 ]] || { echo need arg; return 1; } journalctl --unit=openvpn-client@$1 -f -n0 & s systemctl start openvpn-client@$1 + # sometimes the ask-password agent does not work and needs a delay. + sleep .5 + # https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=779240 + # noticed around 8-2017 after update from around stretch release + # on debian testing, even though the bug is much older. + s systemd-tty-ask-password-agent } vpnoff() { @@ -1574,10 +1624,12 @@ vspicy() { # usage: VIRSH_DOMAIN wtr() { curl wttr.in/boston; } xl() { - # this succeeds even if gnome-screensaver isn't running. + # this succeeds even if gnome-screensaver isn\'t running. gnome-screensaver-command --exit &>/dev/null if ! pidof xscreensaver; then + pushd / xscreensaver & + popd # 1 was not long enough sleep 3 fi