X-Git-Url: https://iankelling.org/git/?a=blobdiff_plain;f=brc;h=7731b9cdd7c0652302300b7571bb663c4b134726;hb=1f027ea146ea6c62002a8f67f831273a5c431b52;hp=3f4d9f9c8ebe535c2c10bc3479ba2b21e4502f06;hpb=1689909e66f73f779c4e13458d713a2ef517c9f5;p=distro-setup diff --git a/brc b/brc index 3f4d9f9..7731b9c 100644 --- 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,24 @@ 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 + shellcheck -x -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 } + # sk with quotes. For checking scripts that we expect to take untrusted # input in order to verify we quoted vars. skq() { @@ -2461,44 +2467,31 @@ 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) + +# sk on all the files in current git repo skgit() { - local f toplevel orig_dir tmp skip e - local -a ls_files excludes + local f toplevel orig_dir tmp + local -a ls_files sk_files toplevel=$(git rev-parse --show-toplevel) if [[ $PWD != "$toplevel" ]]; then orig_dir=$PWD cd $toplevel fi - excludes=( - 'disabled/*' - # included from another file and checked there - beet-data - brc - brc2 - ) - tmp=$(git ls-files) + # tracked & untracked files + tmp=$(git ls-files && git ls-files --others --exclude-standard) mapfile -t ls_files <<<"$tmp" for f in "${ls_files[@]}"; do - skip=false - for e in "${excludes[@]}"; do - if [[ $f == $e ]]; 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 ||: + if sk-p "$f"; then + sk_files+=("$f") fi done + sk "${sk_files[@]}" if [[ $orig_dir ]]; then cd $orig_dir fi @@ -3126,8 +3119,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"