X-Git-Url: https://iankelling.org/git/?a=blobdiff_plain;f=brc;h=b2df5c28bcd8aa102fc4eef73ca43b69b379610e;hb=768363d8771edb9d9ed82425fa772d77b90139c0;hp=afb73f101ee6cd8a78da4f7c458b6b963e4b58ac;hpb=656f61e21be6e2f1f4abb456a845340412e8b8a0;p=distro-setup diff --git a/brc b/brc index afb73f1..b2df5c2 100644 --- a/brc +++ b/brc @@ -673,8 +673,20 @@ khcopy() { # ya, hacky hardcoded hostnames in 2023. we could do better hssh-update() { - local -a failed_hosts - for host in kd x3.office.fsf.org syw; do + local -a failed_hosts hosts + case $HOSTNAME in + sy|kd) + hosts=( + kd x3.office.fsf.org syw + ) + ;; + x3) + hosts=( + b8.nz sywg.b8.nz + ) + ;; + esac + for host in ${hosts[@]}; do e $host if ! scp /b/fai/fai/config/files/usr/local/bin/hssh/IANK root@$host:/usr/local/bin/hssh; then failed_hosts+=($host) @@ -700,7 +712,7 @@ for field in {1..20}; do done # h1 = head -n1 for num in {1..9}; do - eval h$num"() { head -n$num; }" + eval h$num"() { head -n$num || [[ \$? == 141 ]]; }" done @@ -1578,14 +1590,16 @@ pst() { pstree -apnA } -jtail() { - journalctl -n 10000 -f "$@" -} -jr() { journalctl "$@" ; } -jrf() { journalctl -f "$@" ; } +# journalctl with times in the format the --since= and --until= options accept +jrt() { journalctl -e -n100000 -o short-full "$@"; } +jr() { journalctl -e -n100000 "$@" ; } +jrf() { journalctl -n1000 -f "$@" ; } jru() { - journalctl -u exim4 _SYSTEMD_INVOCATION_ID="$(systemctl show -p InvocationID --value $1)" + # the invocation id is "assigned each time the unit changes from an inactive + # state into an activating or active state" man systemd.exec + journalctl -e --no-tail -u exim4 _SYSTEMD_INVOCATION_ID="$(systemctl show -p InvocationID --value $1)" } +ccomp journalctl jr jrf jru @@ -1694,6 +1708,11 @@ histrm() { history -w } +# history without the date +histplain() { + history "$@" | cut -d' ' -f 7- +} + ccomp grep k ks ksu histrm @@ -1732,12 +1751,24 @@ mkdir() { command mkdir -p "$@"; } nags() { # https://github.com/HenriWahl/Nagstamon/issues/357 - if ! pgrep -f /usr/lib/notification-daemon/notification-daemon >/dev/null; then - /usr/lib/notification-daemon/notification-daemon & + if ! pgrep -f /usr/bin/dunst >/dev/null; then + /usr/bin/dunst & fi /usr/bin/nagstamon & } +# profanity screen +profsrc() { + screen -RD -S profanity +} + +# i dont want to wait for konsole to exit... +prof() { + command prof &>/dev/null & +} + + + nmt() { # cant use s because sudo -i doesnt work for passwordless sudo command case $EUID in @@ -2109,16 +2140,23 @@ sk() { # see bash-template/style-guide.md for justifications local quotes others - quotes=2048,2068,2086,2206 + quotes=2048,2068,2086,2206,2254 others=2029,2033,2054,2164 shellcheck -W 999 -x -e $quotes,$others "$@" || return $? } +# sk with quotes. For checking scripts that we expect to take untrusted +# input in order to verify we quoted vars. +skq() { + local others + others=2029,2033,2054,2164 + shellcheck -W 999 -x -e $others "$@" || return $? +} skgit() { local f for f in $(i s | awk '$1 == "modified:" {print $2}'); do if [[ $(head -n1 "$f") == '#!/bin/bash'* ]]; then - sk $f + sk $f ||: fi done } @@ -2684,6 +2722,34 @@ spark() pdfwc() { local f; for f; do echo "$f" "$(pdfinfo "$f" | awk '/^Pages:/ {print $2}')"; done } + +# nvm install script appended this to my .bashrc. I dont want to run it all the time, +# so put it in a function. +nvm-init() { + export NVM_DIR="$HOME/.nvm" + # shellcheck disable=SC1091 # may not exist, & third party + [ -s "$NVM_DIR/nvm.sh" ] && source "$NVM_DIR/nvm.sh" # This loads nvm + # shellcheck disable=SC1091 # may not exist, & third party + [ -s "$NVM_DIR/bash_completion" ] && source "$NVM_DIR/bash_completion" # This loads nvm bash_completion +} + + +leap-year() { + if date -d 'february 29' &>/dev/null; then + year_days=366 + else + year_days=365 + fi + echo $year_days +} + +# on-battery +on-bat() { + if [[ -e /sys/class/power_supply/AC/online && $(