mostly fixes
[distro-setup] / brc
diff --git a/brc b/brc
index 00a486219e79bfded2f5a0de6983d5aae09966e5..ebbe38eab55b7d3e3debc8dc6e1d23b8cc279d71 100644 (file)
--- a/brc
+++ b/brc
@@ -238,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
@@ -397,19 +396,29 @@ b() {
   c -
 }
 
-vp9() {
-  in=$PWD/$1
+hexipv4() {
+  printf '%d.%d.%d.%d\n' $(echo $1 | sed 's/../0x& /g')
+}
 
-  if [[ $2 ]]; then
-    out=$PWD/$2
-  else
-    out=$PWD/vp9/$1
-  fi
-  cd $(mktemp -d)
-  pwd
-  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 && \
-    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 -
+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
@@ -474,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
 }
@@ -1001,6 +1020,11 @@ ic() {
   git commit -am "$*"
 }
 
+ipp() {
+  git pull
+  git push
+}
+
 
 ifn() {
   # insensitive find
@@ -1296,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
@@ -1303,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 || :
@@ -1347,6 +1378,10 @@ rmstrips() {
   ssh fencepost head -n 300 /gd/gnuorg/EventAndTravelInfo/rms-current-trips.txt | less
 }
 
+sudo () {
+  command sudo "$@" || return $?
+  DID_SUDO=true
+}
 s() {
   # background
   # I use a function because otherwise we cant use in a script,
@@ -1626,7 +1661,6 @@ sl() {
     return 1
   fi
 
-  now=$(date +%s)
   dorsync=false
   haveinfo=false
   tmpa=($SL_INFO_DIR/???????????"$remote")
@@ -1684,7 +1718,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
@@ -1870,6 +1904,12 @@ psnetns() {
       if [[ $x ]]; then echo "$x"; else echo $l; fi;
     done
 }
+nonet() {
+  if ! s ip netns list | grep -Fx nonet &>/dev/null; then
+    s ip netns add nonet
+  fi
+  sudo -E env /sbin/ip netns exec nonet sudo -E -u iank /bin/bash
+}
 
 m() { printf "%s\n" "$*";  "$@"; }
 
@@ -1920,8 +1960,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)"
@@ -1933,7 +1972,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
@@ -2010,7 +2048,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