X-Git-Url: https://iankelling.org/git/?a=blobdiff_plain;f=brc2;h=c857670bc64f937d381c42e6123a79ba8f480bcf;hb=f27b67a1dfa58b5f101bba607b2f91a73e65299e;hp=8406dab33a401d26c380d39051b2a2c492b8e4a8;hpb=7ed3b98c4d3678d982c33741f1f42727144e66ce;p=distro-setup diff --git a/brc2 b/brc2 index 8406dab..c857670 100644 --- a/brc2 +++ b/brc2 @@ -29,9 +29,29 @@ if [[ $LESSHISTFILE == - ]]; then HISTFILE= c() { cd "$@"; } elif [[ $HISTFILE ]]; then - HISTFILE=$HOME/.bh + # use an alternate history file when we are streaming. + if [[ -e $HOME/.iank-stream-on ]]; then + HISTFILE=/a/bin/data/stream_hist + else + HISTFILE=$HOME/.bh + fi fi +# history personal +hip() { + history -c + HISTFILE=$HOME/.bh + history -r +} + +# history for streaming +his() { + history -c + HISTFILE=/a/bin/data/stream_hist + history -r +} + + source /a/bin/distro-setup/path-add-function path-add /a/exe # add this with absolute paths as needed for better security @@ -329,10 +349,16 @@ tback() { # s sshfs bu@$host:/bu/home/md /bu/mnt -o reconnect,ServerAliveInterval=20,ServerAliveCountMax=30 -o allow_other edelayoff() { - echo all >/etc/exim4/no-delay-eximids + echo all >/var/spool/exim4/gw/.no-delay-eximids + if [[ $EUID == 0 ]]; then + chown iank:iank /var/spool/exim4/gw/.no-delay-eximids + fi } edelayon() { - echo >/etc/exim4/no-delay-eximids + echo >/var/spool/exim4/gw/.no-delay-eximids + if [[ $EUID == 0 ]]; then + chown iank:iank /var/spool/exim4/gw/.no-delay-eximids + fi } eqgo() { @@ -1749,7 +1775,13 @@ lipush() { local p a # excluding emacs for now #p=(/a/opt/{emacs-debian11{,-nox},mu,emacs} /a/bin /a/exe /a/h /a/c /p/c/machine_specific/vps{,.hosts}) - p=(/a/bin /a/exe /a/h /a/c /p/c/machine_specific/vps{,.hosts} /c/roles/prom_export/files/simple/usr/local/bin/fsf-install-node-exporter /a/opt/fpaste) + p=( + /a/bin /a/exe /a/h /a/c /p/c/machine_specific/vps{,.hosts} + /c/roles/prom_export/files/simple/usr/local/bin/fsf-install-node-exporter + /a/opt/fpaste + /p/c/user-specific/www-data/icecast-fsf{,-tech}-htpasswd + /p/c/icecast.xml + ) a="-ahviSAXPH --specials --devices --delete --relative --exclude-from=/p/c/li-rsync-excludes" ret=0 for h in li je bk; do @@ -1780,7 +1812,7 @@ bindpush() { dsign iankelling.org expertpathologyreview.com zroe.org amnimal.ninja lipush for h in li bk; do - m ssh $h.b8.nz dnsup + m ssh iank@$h.b8.nz dnsup done } bindpushb8() { @@ -1904,68 +1936,12 @@ satoshi() { # $1 satoshi in usd # 2023). However, in 2024-02, I ran a backup where a receiving machine # had the wallet enabled and there was no error, so I don't know if this # is still an issue or likely it is an inconsistent behavior. +# Note: a pruned node won't allow for a wallet to be added, super lame +# so i'm just not running a bitcoin node for now. +# Error: Prune: last wallet synchronisation goes beyond pruned data. You +# need to -reindex (download the whole blockchain again in case of +# pruned node) # -# As a workaround, this function is for enabling the wallet when I want -# to use it and leave it disabled otherwise. -walleton() { - local active - active=false - no_on=true - if [[ ! $(readlink -f /var/lib/bitcoind/wallets) == /q/wallets ]]; then - if systemctl --quiet is-active bitcoind; then - if [[ -e /tmp/no-bitcoinon ]]; then - no_on=true - else - if [[ $EUID == 0 ]]; then - m install -T -o iank -g iank /dev/null /tmp/no-bitcoinon - else - m touch /tmp/no-bitcoinon - fi - fi - active=true - m ser stop bitcoind - fi - m s ln -s /q/wallets /var/lib/bitcoind - sudo chown -h bitcoin:bitcoin /var/lib/bitcoind/wallets - if $active; then - m ser start bitcoind - if ! $no_on; then - m rm /tmp/no-bitcoinon - fi - fi - fi -} -walletoff() { - local active - active=false - no_on=true - if [[ $(readlink -f /var/lib/bitcoind/wallets) == /q/wallets ]]; then - if systemctl --quiet is-active bitcoind; then - if [[ -e /tmp/no-bitcoinon ]]; then - no_on=true - else - if [[ $EUID == 0 ]]; then - m install -T -o iank -g iank /dev/null /tmp/no-bitcoinon - else - m touch /tmp/no-bitcoinon - fi - fi - active=true - m ser stop bitcoind - else - echo note: bitcoind not active - fi - m rm /var/lib/bitcoind/wallets - if $active; then - # note, starting bitcoin always fails, but it actually - # succeeds. But this is strangely not consistent. - m ser start bitcoind - if ! $no_on; then - m rm /tmp/no-bitcoinon - fi - fi - fi -} #### end bitcoin related things @@ -2156,7 +2132,7 @@ fastboot() { kdecd() { /usr/lib/x86_64-linux-gnu/libexec/kdeconnectd; } -bat() { +batp() { cat /sys/class/power_supply/BAT0/capacity } @@ -2701,6 +2677,7 @@ host-info-update() { # hosts is that it is for the User part, the IdentityFile part is # redundant to *.b8.nz. Also note ${host}i, we only setup those for vpn hosts, but there is no harm in overspecifying here. root_hosts+=($host ${host}i $host.b8.nz ${host}i.b8.nz) + # shellcheck disable=SC2004 # false positive root_hosts_a[$host]=t # a for associative array else nonroot_hosts+=($host ${host}i) @@ -2841,12 +2818,17 @@ EOF b8_ip=$(dig +short b8.nz @iankelling.org | tail -1) + # if our dynamic ip updates broke, set manually, eg: + #b8_ip=72.74.193.xxx if [[ ! $b8_ip ]]; then echo "$0: error: got empty b8.nz ip. returning 1" return 1 fi { - echo "@ A $b8_ip" + cat </dev/null; then + spamd_ser=spamassassin + fi + # mailvpn would belong on the list if using openvpn - for unit in mailnn unbound dovecot spamassassin exim4 radicale; do + for unit in mailnn unbound dovecot $spamd_ser exim4 radicale; do pid=$(servicepid $unit) echo debug: unit=$unit pid=$pid if [[ ! $pid ]]; then @@ -4366,11 +4367,24 @@ vrun() { } electrum() { + # Running the appimage said fuse was not available, but try + # running the appimage with --appimage-extract, which worked. + # It seems there is no need to backup the wallet, it can be restored + # via the seed onto any computer that needs it. + /a/opt/electrum/squashfs-root/AppRun "$@" + + + # This was an old way I ran electrum over tor, and seems like I + # imported a bitcoin core wallet. + # # https://electrum.readthedocs.io/en/latest/tor.html # https://github.com/spesmilo/electrum-docs/issues/129 - s rsync -ptog --chown bitcoin:bitcoin ~/.Xauthority /var/lib/bitcoind/.Xauthority - sudo -u bitcoin DISPLAY=$DISPLAY XAUTHORITY=/var/lib/bitcoind/.Xauthority /a/opt/electrum-4.2.1-x86_64.AppImage -p socks5:localhost:9050 + # s rsync -ptog --chown bitcoin:bitcoin ~/.Xauthority /var/lib/bitcoind/.Xauthority + # sudo -u bitcoin DISPLAY=$DISPLAY XAUTHORITY=/var/lib/bitcoind/.Xauthority /a/opt/electrum-4.2.1-x86_64.AppImage -p socks5:localhost:9050 + } + + monero() { sudo -u bitcoin DISPLAY=$DISPLAY XAUTHORITY=/var/lib/bitcoind/.Xauthority /a/opt/monero-gui-v0.17.3.2/monero-wallet-gui } @@ -4387,14 +4401,24 @@ rgm() { rg "$@" /p/w.org /a/t.org /a/work.org /b } -# re all my files more expansively +# re all my files more expansively. +# usage [-OPT...] regex space combined rem() { local paths + local -a opts + for arg; do + if [[ $arg == -* ]]; then + opts+=("$1") + shift + else + break + fi + done paths="/p/c /b/" find $paths -not \( -name .svn -prune -o -name .git -prune \ -o -name .hg -prune -o -name .editor-backups -prune \ -o -name .undo-tree-history -prune \) 2>/dev/null | grep -iP --color=auto -- "$*" ||: - rgv $local_rgv_args -g "!bash_unpublished" -- "$*" $paths /a/work.org ||: + rgv $local_rgv_args -g "!bash_unpublished" "${opts[@]}" -- "$*" $paths /a/work.org ||: } reml() { # rem with limit to 5 matches per file local_rgv_args="-m 5" @@ -4795,6 +4819,50 @@ zmqsend() { ffg() { /nocow/t/ffmpeg-release/ffmpeg-7.0.1/tools/graph2dot -o /tmp/g.tmp && dot -Tpng /tmp/g.tmp -o /tmp/g.png && feh /tmp/g.png; } +firefox-hide-tabs() { + + # without this, make tabs smaller by setting browser.uidensity 1 in about:config + + profiledir=$1 + [[ $1 ]] || return 1 + # Related: the sidebery extension is useful. + + # This is from + # https://raw.githubusercontent.com/MrOtherGuy/firefox-csshacks/master/chrome/hide_tabs_toolbar.css + + ainsl $profiledir/chrome/userChrome.css '#TabsToolbar{ visibility: collapse !important }' + +} + +# kill lease on cmc +klease() { + local tmpdir ret out + ret=0 + out=$(ssh cmc dnsmasq-end-lease "$1" 2>&1) || ret=1 + printf "%s\n" "$out" + if [[ $out == *"try diffing"* ]]; then + tmpdir=$(mktemp -d) + m scp cmc:/tmp/dhcp.leases cmc:/tmp/dhcp.leases.iank $tmpdir + m diff $tmpdir/dhcp.leases $tmpdir/dhcp.leases.iank ||: + rm -rf $tmpdir + fi + return $ret +} + +# ffs and switch the bash history on this terminal. +ffs() { + local last + last="${*: -1}" + if [[ $last && $last != -* && $last != sysops ]]; then + his + fi + command ffs "$@" +} + +i3gen() { + /b/ds/i3-sway/gen +} + export BASEFILE_DIR=/a/bin/fai-basefiles #export ANDROID_HOME=/a/opt/android-home