X-Git-Url: https://iankelling.org/git/?a=blobdiff_plain;f=brc;h=bd76bb4c8265890c517bdff5f501556ed0d76bcb;hb=6cc73025405b7a540eec371d1d8f7d9d13d8e019;hp=d0c0f8d655be4f9e68fceff05538cae58940b960;hpb=6cb2fbb730b7ea2d95618bace310ef40c43e51a2;p=distro-setup diff --git a/brc b/brc index d0c0f8d..bd76bb4 100644 --- a/brc +++ b/brc @@ -204,6 +204,15 @@ if [[ $- == *i* ]]; then fi +case $TERM in + # fixup broken backspace in chroots + xterm-kitty|alacritty) + chroot() { + TERM=xterm-256color command chroot "$@" + } + ;; +esac + export BC_LINE_LENGTH=0 # ansible option @@ -229,8 +238,7 @@ export SL_INFO_DIR=/p/sshinfo if [[ -s $bashrc_dir/path-add-function ]]; then source $bashrc_dir/path-add-function if [[ $SSH_CLIENT ]]; then - # [[ -d /home/iank/.iank/e/e ]] mounts it unnecessarily, so use this. - if grep -qF /home/iank/.iank/e/e /etc/auto.iank /etc/exports &>/dev/null; then + if grep -qF /home/iank/.iank/e/e /etc/exports &>/dev/null; then export EMACSDIR=/home/iank/.iank/e/e fi path-add $bashrc_dir @@ -388,6 +396,34 @@ b() { c - } +hexipv4() { + printf '%d.%d.%d.%d\n' $(echo $1 | sed 's/../0x& /g') +} + +vp9() { + local f out outdir in + outdir=vp9 + case $1 in + --out) + outdir=$2 + shift 2 + ;; + esac + m mkdir -p $outdir + for f; do + out=$PWD/$outdir/$f + in=$PWD/$f + m cd $(mktemp -d) + pwd + m ffmpeg -threads 0 -i $in -g 192 -vcodec libvpx-vp9 -vf scale=-1:720 -max_muxing_queue_size 9999 -b:v 750K -pass 1 -an -f null /dev/null + m ffmpeg -y -threads 0 -i $in -g 192 -vcodec libvpx-vp9 -vf scale=-1:720 -max_muxing_queue_size 9999 -b:v 750K -pass 2 -c:a libvorbis -qscale:a 5 $out + cd - + done +} + +utcl() { # utc 24 hour time to local hour 24 hour time + echo "print( ($1 $(date +%z | sed -r 's/..$//;s/^(-?)0*/\1/')) % 24)"|python3 +} # c. better cd if type -p wcd &>/dev/null; then @@ -447,7 +483,17 @@ chrbind() { for d in dev proc sys dev/pts; do [[ -d $d ]] if ! mountpoint $d &>/dev/null; then - s mount -o bind /$d $d + m s mount -o bind /$d $d + fi + done +} +chumount() { + local d + # dev/pts needed for pacman signature check + for d in dev proc sys dev/pts; do + [[ -d $d ]] + if mountpoint $d &>/dev/null; then + m s umount $d fi done } @@ -974,6 +1020,11 @@ ic() { git commit -am "$*" } +ipp() { + git pull + git push +} + ifn() { # insensitive find @@ -1269,6 +1320,13 @@ rsu() { # [OPTS] HOST PATH } ccomp rsync rsd rsa rst rsu +# find programs listening on a port +ssp() { + local port=$1 + # to figure out these args, i had to look at the man page from git version, as of 2022-04. + s ss -lpn state listening sport = $port +} + resolvcat() { local f if [[ $(systemctl is-active nscd ||:) != inactive ]]; then @@ -1276,7 +1334,7 @@ resolvcat() { fi f=/etc/resolv.conf echo $f:; ccat $f - hr; s ss -lpn 'sport = 53' + hr; s ss -lpn sport = 53 if systemctl is-enabled dnsmasq &>/dev/null || [[ $(systemctl is-active dnsmasq ||:) != inactive ]]; then # this will fail is dnsmasq is failed hr; m ser status dnsmasq | cat || : @@ -1362,7 +1420,6 @@ safe_rename() { # warn and dont rename if file exists. } - sd() { sudo dd status=none of="$1" } @@ -1378,6 +1435,10 @@ ser() { s service $2 $1 fi } +serstat() { + systemctl -n 40 status "$@" +} + seru() { systemctl --user "$@"; } # like restart, but do nothing if its not already started srestart() { @@ -1596,7 +1657,6 @@ sl() { return 1 fi - now=$(date +%s) dorsync=false haveinfo=false tmpa=($SL_INFO_DIR/???????????"$remote") @@ -1654,7 +1714,7 @@ sl() { RSYNC_RSH="ssh ${args[*]}" m rsync -rptL --delete $sl_rsync_args $SL_FILES_DIR "$remote": fi if $dorsync || ! $haveinfo; then - sshinfo=$SL_INFO_DIR/$now$type"$remote" + sshinfo=$SL_INFO_DIR/$EPOCHSECONDS$type"$remote" [[ -e $SL_INFO_DIR ]] || mkdir -p $SL_INFO_DIR printf "%s\n" "$extra_info" >$sshinfo chmod 666 $sshinfo @@ -1890,8 +1950,7 @@ s/^\Wcapability: (.*)/\1/;Ta;h;b # * misc stuff -if $use_color; then - +if $use_color && type -p tput &>/dev/null; then term_bold="$(tput bold)" term_red="$(tput setaf 1)" term_green="$(tput setaf 2)" @@ -1903,7 +1962,6 @@ if $use_color; then # term_underl="$(tput smul)" # term_blue="$(tput setaf 4)" # term_cyan="$(tput setaf 6)" - fi # Try to keep environment pollution down, EPA loves us. unset safe_term match_lhs use_color @@ -1913,6 +1971,16 @@ unset safe_term match_lhs use_color if [[ $- == *i* ]]; then + + case $HOSTNAME in + bk|je|li) + if [[ $EUID == 1000 ]]; then + system-status _ ||: + fi + ;; + esac + + # this needs to come before next ps1 stuff # this stuff needs bash 4, feb 2009, # old enough to no longer condition on $BASH_VERSION anymore @@ -1970,7 +2038,7 @@ if [[ $- == *i* ]]; then if [[ -e /dev/shm/iank-status && ! -e /tmp/quiet-status ]]; then eval $(< /dev/shm/iank-status) fi - if [[ ! $SSH_CLIENT && $MAIL_HOST != "$HOSTNAME" ]]; then + if [[ $MAIL_HOST && $MAIL_HOST != "$HOSTNAME" ]]; then ps_char="@ $ps_char" fi # We could test if sudo is active with sudo -nv