shellcheck stuff
authorIan Kelling <ian@iankelling.org>
Sat, 27 Apr 2024 23:56:27 +0000 (19:56 -0400)
committerIan Kelling <ian@iankelling.org>
Sat, 27 Apr 2024 23:56:27 +0000 (19:56 -0400)
beet-data
bitfolk-chroot-install
brc
brc2
distro-end
filesystem/usr/local/bin/check-lets-encrypt-ssl-settings
filesystem/usr/local/bin/myupgrade-iank
mailtest-check

index 5fb0538140940cf217d4eac9455497e2bcb1c568..0aee2b4d9577e061ee861799758860f0e18d4701 100644 (file)
--- a/beet-data
+++ b/beet-data
@@ -127,7 +127,7 @@ beetapl() { # beet add playlist
   local name
   name="$1"
   shift
-  bpla[$name]="${@@Q}"
+  bpla[$name]="${*@Q}"
 }
 
 
index b33a0d3caa0f04fdadc0948ba666462d6e831b1a..398c20ce725df7780f9732ebcaf8744f6a714ead 100755 (executable)
@@ -46,6 +46,7 @@ locales locales/locales_to_be_generated multiselect en_US.UTF-8 UTF-8
 EOF
 
 # /a/bin/fai/fai/config/hooks/updatebase.UBUNTU
+# shellcheck disable=SC2016
 debconf --owner=locales sh -c '
    . /usr/share/debconf/confmodule
    db_version 2.0
diff --git a/brc b/brc
index 3f4d9f9c8ebe535c2c10bc3479ba2b21e4502f06..d60af90a674155158c01557efad5eaf143c0c57c 100644 (file)
--- a/brc
+++ b/brc
@@ -1390,6 +1390,7 @@ fa() {
   done < <(find "$@" -print0);
 }
 
+# shellcheck disable=SC2120
 faf() { # find all files. use -L to follow symlinks
   find "$@" -not \( -name .svn -prune -o -name .git -prune \
        -o -name .hg -prune -o -name .editor-backups -prune \
@@ -2436,19 +2437,30 @@ sgu() {
   systemctl list-unit-files | rg "$@"
 }
 
+# check whether we generally want to do sk on the file
+sk-p() {
+  [[ ! -L $f ]] && istext "$1" && [[ $(head -n1 "$1" 2>/dev/null) == '#!/bin/bash'* ]]
+}
 
 sk() {
   # see https://savannah.gnu.org/maintenance/fsf/bash-style-guide/ for justifications
   local quotes others ret
   quotes=2048,2068,2086,2206,2254
-  others=2029,2032,2033,2054,2164,
-  shellcheck -W 999 -x -e $quotes,$others "$@" || ret=$?
+  others=2029,2032,2033,2054,2164
+  # Dont complain about sourced files if we aren't asking for them.
+  if [[ $1 != -x ]]; then
+    others+=,1091
+  fi
+  shellcheck -W 999 -e $quotes,$others "$@" || ret=$?
   if (( ret >= 1 )); then
     echo "A template comment to disable is now in clipboard. eg: # shellcheck disable=SC2206 # reason"
     cbs "# shellcheck disable=SC"
     return $ret
   fi
 }
+skx() {
+  sk -x "$@"
+}
 # sk with quotes. For checking scripts that we expect to take untrusted
 # input in order to verify we quoted vars.
 skq() {
@@ -2461,15 +2473,16 @@ skq() {
 skmodified() {
   local f
   for f in $(i s | awk '$1 == "modified:" {print $2}'); do
-    if [[ ! -L $f ]] && istext "$f" && [[ $(head -n1 "$f" 2>/dev/null) == '#!/bin/bash'* ]]; then
+    if sk-p "$f"; then
       sk $f ||:
     fi
   done
 }
 
+
 # sk on all the files in current git repo (except those excluded)
 skgit() {
-  local f toplevel orig_dir tmp skip e
+  local f toplevel orig_dir tmp skip pattern
   local -a ls_files excludes
   toplevel=$(git rev-parse --show-toplevel)
   if [[ $PWD != "$toplevel" ]]; then
@@ -2478,25 +2491,36 @@ skgit() {
   fi
   excludes=(
     'disabled/*'
-    # included from another file and checked there
+    # sourced from brc2
     beet-data
-    brc
-    brc2
+    # sourced from .bash_profile
+    .bashrc
+  )
+  no_check_sourced=(
+    .bash_profile
   )
-  tmp=$(git ls-files)
+  tmp=$(git ls-files | shuf)
   mapfile -t ls_files <<<"$tmp"
   for f in "${ls_files[@]}"; do
     skip=false
-    for e in "${excludes[@]}"; do
-      if [[ $f == $e ]]; then
+    for pattern in "${excludes[@]}"; do
+      if [[ $f == $pattern ]]; then
         skip=true
         break
       fi
     done
     if $skip; then continue; fi
 
-    if istext "$f" && [[ $(head -n1 "$f" 2>/dev/null) == '#!/bin/bash'* ]]; then
-      sk $f ||:
+    check_source=-a
+    for pattern in "${no_check_sourced[@]}"; do
+      if [[ $f == "$pattern" ]]; then
+        check_source=
+        break
+      fi
+    done
+    if sk-p "$f"; then
+      printf "================= %s\n" "$f"
+      sk $check_source --color=always $f || [[ $? == 1 ]]
     fi
   done
   if [[ $orig_dir ]]; then
@@ -3126,8 +3150,9 @@ n() {
 }
 
 catnew() {
-  local dir file
+  local dir file _
   dir="$1"
+  # shellcheck disable=SC2030
   inotifywait -m "$dir" -e create -e moved_to | while read -r _ _ file; do
     hr
     cat "$dir/$file"
diff --git a/brc2 b/brc2
index 53d713a54c4a9a9b8d6a6f1aa5b76e971e5a7541..eae5aa93439b60f921cc061cacee567cf47d2c1f 100644 (file)
--- a/brc2
+++ b/brc2
@@ -83,15 +83,6 @@ else
   export NOT_MAIL_HOST_P=t
 fi
 
-
-source /a/bin/log-quiet/logq-function
-
-# not used
-# if [[ -s /a/opt/alacritty/extra/completions/alacritty.bash ]]; then
-#   source /a/opt/alacritty/extra/completions/alacritty.bash
-# fi
-
-
 source /a/bin/ds/beet-data
 
 
@@ -843,7 +834,7 @@ mpvrpc-loadfile() {
 # todo: enter should also unpause
 beetag()  {
   local last_genre_i fstring tag id char new_item char_i genre tag remove doplay i j random path
-  local do_rare_genres read_wait help line lsout tmp ls_line skip_lookback
+  local do_rare_genres read_wait line lsout tmp ls_line skip_lookback
   local escape_char escaped_input expected_input skip_input_regex right_pad erasable_line seek_sec
   local pl_state_path pl_state_dir pl_state_file tmpstr
   local new_random pl_seed_path seed_num seed_file fmt first_play repeat1
@@ -2349,8 +2340,8 @@ rename-test() {
   # test whether missing files were renamed, generally for use with fsdiff
   # $1 = fsdiff output file, $2 = directory to compare to. pwd = fsdiff dir
   # echos non-renamed files
-  local x y found
-  unset sums
+  local x line found renamed
+  local -a sums
   for x in "$2"/*; do
     { sums+=( "$(md5sum < "$x")" ) ; } 2>/dev/null
   done
@@ -2402,8 +2393,8 @@ gup() { /a/f/gnulib/build-aux/gnupload "$@"; }
 
 dejagnu() { /a/opt/dejagnu/dejagnu "$@"; }
 
+# do git status on published repos.
 hstatus() {
-  # do git status on published repos.
   c /a/bin/githtml
   for x in *; do
     cd "$(readlink -f $x)"/..
@@ -2417,6 +2408,16 @@ hstatus() {
   done
 }
 
+hsk() {
+  local x
+  c /a/bin/githtml
+  for x in *; do
+    cd "$(readlink -f $x)"/..
+    skgit
+    cd /a/bin/githtml
+  done
+}
+
 ## work log
 #
 # note: database location is specified in ~/.timetrap.yml, currently /p/.timetrap.db
index d7fa65831328beb8567ffdaa65a57e54afba90d6..f81baa3d0acf4ac5fc9cc09293f04f2e0757a168 100755 (executable)
@@ -2026,6 +2026,7 @@ curl -fsSL https://cli.github.com/packages/githubcli-archive-keyring.gpg | sudo
 
 ### end gh ####
 
+
 # remove trisquel banner. it is cool but takes up too much space.
 sudo rm -f /etc/update-motd.d/01-banner
 
index f0e05e41569594adb3c233616ba165bc2812db62..c9eab4213f6378d17c63b96fa015f0af31ad996b 100755 (executable)
@@ -39,7 +39,7 @@ source ~/.bashrc
 if [[ ! -e /dev/shm/iank-status ]]; then
   exit 0
 fi
-eval $(< /dev/shm/iank-status)
+eval "$(< /dev/shm/iank-status)"
 
 if [[ $HOSTNAME != "$MAIL_HOST" || $HOST2 && $HOST2 != "$HOSTNAME" ]]; then
   exit 0
index 7c7a2bfed187828895a3ecf14ddb08cb5961efdf..72cd70f0fb7466cca8605218d3fc79075faf29be 100755 (executable)
@@ -33,8 +33,6 @@ if [[ $EUID == 0 ]]; then
   exit 1
 fi
 
-hn=$(hostname -f)
-
 /a/bin/buildscripts/go
 /a/bin/buildscripts/rust
 
index 034dfc6b45a7d6c72413fc2a70537fe1ca7d5182..856d774d32a82995fa93f31efdc17a46e9218ab5 100755 (executable)
@@ -40,7 +40,7 @@ e() { $int || return 0; printf "mailtest-check: %s\n" "$*"; }
 getspamdpid() {
   if [[ ! $spamdpid || ! -d /proc/$spamdpid ]]; then
     # try twice in case we are restarting, it happens.
-    for i in 1 2; do
+    for (( i=0; i<2; i++ )); do
       spamdpid=$(systemctl show --property MainPID --value spamassassin | sed 's/^[10]$//' ||:)
       if [[ $spamdpid ]]; then
         break