Format shell scripts with shfmt.

All changes in this patch were performed automatically with `shfmt` with
configuration flags specified in `.pre-commit-config.yaml`.

In addition to fixing whitespace the roundtrip through shfmt's AST also
transforms command substitutions

    `cmd`
    # becomes
    $(cmd)

and some redirects

    >&2 echo "msg"
    # becomes
    echo >&2 "msg"
This commit is contained in:
Benjamin Bannier 2021-11-24 22:48:46 +01:00
parent e0b4659488
commit 1f388e3f40
34 changed files with 369 additions and 379 deletions

View file

@ -6,3 +6,9 @@ repos:
rev: 'v13.0.0' rev: 'v13.0.0'
hooks: hooks:
- id: clang-format - id: clang-format
- repo: https://github.com/maxwinterstein/shfmt-py
rev: 3.3.1.8
hooks:
- id: shfmt
args: ["-w", "-i", "4", "-ci"]

View file

@ -8,6 +8,6 @@ set -x
env ASSUME_ALWAYS_YES=YES pkg bootstrap env ASSUME_ALWAYS_YES=YES pkg bootstrap
pkg install -y bash git cmake swig bison python3 base64 pkg install -y bash git cmake swig bison python3 base64
pkg upgrade -y curl pkg upgrade -y curl
pyver=`python3 -c 'import sys; print(f"py{sys.version_info[0]}{sys.version_info[1]}")'` pyver=$(python3 -c 'import sys; print(f"py{sys.version_info[0]}{sys.version_info[1]}")')
pkg install -y $pyver-sqlite3 $pyver-pip pkg install -y $pyver-sqlite3 $pyver-pip
pip install junit2html pip install junit2html

View file

@ -1,7 +1,6 @@
#! /usr/bin/env bash #! /usr/bin/env bash
function banner function banner {
{
local msg="${1}" local msg="${1}"
printf "+--------------------------------------------------------------+\n" printf "+--------------------------------------------------------------+\n"
printf "| %-60s |\n" "$(date)" printf "| %-60s |\n" "$(date)"

View file

@ -36,5 +36,4 @@ for fuzzer_path in ${fuzzers}; do
echo "-----------------------------------------" echo "-----------------------------------------"
done done
exit ${result} exit ${result}

View file

@ -19,18 +19,15 @@ fi
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" &>/dev/null && pwd)" SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" &>/dev/null && pwd)"
. ${SCRIPT_DIR}/common.sh . ${SCRIPT_DIR}/common.sh
function pushd function pushd {
{
command pushd "$@" >/dev/null || exit 1 command pushd "$@" >/dev/null || exit 1
} }
function popd function popd {
{
command popd "$@" >/dev/null || exit 1 command popd "$@" >/dev/null || exit 1
} }
function banner function banner {
{
local msg="${1}" local msg="${1}"
printf "+--------------------------------------------------------------+\n" printf "+--------------------------------------------------------------+\n"
printf "| %-60s |\n" "$(date)" printf "| %-60s |\n" "$(date)"
@ -38,8 +35,7 @@ function banner
printf "+--------------------------------------------------------------+\n" printf "+--------------------------------------------------------------+\n"
} }
function run_unit_tests function run_unit_tests {
{
banner "Running unit tests" banner "Running unit tests"
pushd build pushd build
@ -48,15 +44,13 @@ function run_unit_tests
return 0 return 0
} }
function prep_artifacts function prep_artifacts {
{
banner "Prepare artifacts" banner "Prepare artifacts"
[[ -d .tmp ]] && rm -rf .tmp/script-coverage && tar -czf tmp.tar.gz .tmp [[ -d .tmp ]] && rm -rf .tmp/script-coverage && tar -czf tmp.tar.gz .tmp
junit2html btest-results.xml btest-results.html junit2html btest-results.xml btest-results.html
} }
function run_btests function run_btests {
{
banner "Running baseline tests: zeek" banner "Running baseline tests: zeek"
pushd testing/btest pushd testing/btest
@ -75,8 +69,7 @@ function run_btests
return 0 return 0
} }
function run_external_btests function run_external_btests {
{
# Commenting out this line in btest.cfg causes the script profiling/coverage # Commenting out this line in btest.cfg causes the script profiling/coverage
# to be disabled. We do this for the sanitizer build right now because of a # to be disabled. We do this for the sanitizer build right now because of a
# fairly significant performance bug when running tests. # fairly significant performance bug when running tests.

View file

@ -1,12 +1,12 @@
#! /usr/bin/env bash #! /usr/bin/env bash
unset ZEEK_DISABLE_ZEEKYGEN; unset ZEEK_DISABLE_ZEEKYGEN
# If running this from btest, unset any of the environment # If running this from btest, unset any of the environment
# variables that alter default script values. # variables that alter default script values.
unset ZEEK_DEFAULT_LISTEN_ADDRESS; unset ZEEK_DEFAULT_LISTEN_ADDRESS
unset ZEEK_DEFAULT_LISTEN_RETRY; unset ZEEK_DEFAULT_LISTEN_RETRY
unset ZEEK_DEFAULT_CONNECT_RETRY; unset ZEEK_DEFAULT_CONNECT_RETRY
dir="$(cd "$(dirname "$0")" && pwd)" dir="$(cd "$(dirname "$0")" && pwd)"
source_dir="$(cd $dir/.. && pwd)" source_dir="$(cd $dir/.. && pwd)"
@ -21,15 +21,14 @@ fi
case $output_dir in case $output_dir in
/*) ;; /*) ;;
*) output_dir=`pwd`/$output_dir ;; *) output_dir=$(pwd)/$output_dir ;;
esac esac
cd $build_dir cd $build_dir
. zeek-path-dev.sh . zeek-path-dev.sh
export ZEEK_SEED_FILE=$source_dir/testing/btest/random.seed export ZEEK_SEED_FILE=$source_dir/testing/btest/random.seed
function run_zeek function run_zeek {
{
ZEEK_ALLOW_INIT_ERRORS=1 zeek -X $conf_file zeekygen >/dev/null 2>$zeek_error_file ZEEK_ALLOW_INIT_ERRORS=1 zeek -X $conf_file zeekygen >/dev/null 2>$zeek_error_file
if [ $? -ne 0 ]; then if [ $? -ne 0 ]; then
@ -48,8 +47,7 @@ run_zeek
script_ref_dir=$output_dir/script-reference script_ref_dir=$output_dir/script-reference
mkdir -p $script_ref_dir mkdir -p $script_ref_dir
function generate_index function generate_index {
{
echo "Generating $script_ref_dir/$2" echo "Generating $script_ref_dir/$2"
printf "$1\t*\t$script_ref_dir/$2\n" >$conf_file printf "$1\t*\t$script_ref_dir/$2\n" >$conf_file
run_zeek run_zeek

8
configure vendored
View file

@ -128,8 +128,8 @@ This typically means that you performed a non-recursive git clone of
Zeek. To check out the required subdirectories, please execute: Zeek. To check out the required subdirectories, please execute:
( cd $sourcedir && git submodule update --recursive --init ) ( cd $sourcedir && git submodule update --recursive --init )
" >&2; " >&2
exit 1; exit 1
fi fi
# Function to append a CMake cache entry definition to the # Function to append a CMake cache entry definition to the
@ -179,7 +179,7 @@ has_enable_mobile_ipv6=0
# parse arguments # parse arguments
while [ $# -ne 0 ]; do while [ $# -ne 0 ]; do
case "$1" in case "$1" in
-*=*) optarg=`echo "$1" | sed 's/[-_a-zA-Z0-9]*=//'` ;; -*=*) optarg=$(echo "$1" | sed 's/[-_a-zA-Z0-9]*=//') ;;
*) optarg= ;; *) optarg= ;;
esac esac
@ -408,7 +408,7 @@ if [ -z "$CMakeCommand" ]; then
echo "This package requires CMake, please install it first." echo "This package requires CMake, please install it first."
echo "Then you may use this script to configure the CMake build." echo "Then you may use this script to configure the CMake build."
echo "Note: pass --cmake=PATH to use cmake in non-standard locations." echo "Note: pass --cmake=PATH to use cmake in non-standard locations."
exit 1; exit 1
fi fi
fi fi

View file

@ -10,10 +10,9 @@
error_count=0 error_count=0
error_msg() error_msg() {
{
error_count=$((error_count + 1)) error_count=$((error_count + 1))
echo "$@" 1>&2; echo "$@" 1>&2
} }
if [ $# -ne 2 ]; then if [ $# -ne 2 ]; then
@ -29,7 +28,7 @@ for f in $all_loads; do
done done
if [ $error_count -gt 0 ]; then if [ $error_count -gt 0 ]; then
exit 1; exit 1
fi fi
exit 0 exit 0

View file

@ -60,4 +60,3 @@ EOF
cat >activate.zeek <<EOF cat >activate.zeek <<EOF
@load-plugin Demo::Foo @load-plugin Demo::Foo
EOF EOF

View file

@ -56,8 +56,8 @@ function check_group_coverage {
OUTPUT="$3" OUTPUT="$3"
# Prints all the relevant directories # Prints all the relevant directories
DIRS=$(for i in $(cut -f 5 "$DATA"); do basename "$i" | sed 's/#[^#]*$//'; done \ DIRS=$(for i in $(cut -f 5 "$DATA"); do basename "$i" | sed 's/#[^#]*$//'; done |
| sort | uniq | sed 's/^.*'"${SRC_FOLDER}"'//' | grep "^#s\+" ) sort | uniq | sed 's/^.*'"${SRC_FOLDER}"'//' | grep "^#s\+")
# "Generalize" folders unless it's from analyzers # "Generalize" folders unless it's from analyzers
DIRS=$(for i in $DIRS; do DIRS=$(for i in $DIRS; do
if !(echo "$i" | grep "src#analyzer"); then if !(echo "$i" | grep "src#analyzer"); then
@ -76,8 +76,8 @@ function check_group_coverage {
fi fi
PERCENTAGE=$(echo "scale=3;100*$RUN/$TOTAL" | bc | tr "\n" " ") PERCENTAGE=$(echo "scale=3;100*$RUN/$TOTAL" | bc | tr "\n" " ")
printf "%-50s\t%12s\t%6s %%\n" "$i" "$RUN/$TOTAL" $PERCENTAGE \ printf "%-50s\t%12s\t%6s %%\n" "$i" "$RUN/$TOTAL" $PERCENTAGE |
| sed 's|#|/|g' >>$OUTPUT sed 's|#|/|g' >>$OUTPUT
done done
} }
@ -98,7 +98,7 @@ echo "ok"
# ... if system does not have gcov installed, exit with message. # ... if system does not have gcov installed, exit with message.
echo -n "Creating coverage files... " echo -n "Creating coverage files... "
if which gcov >/dev/null 2>&1; then if which gcov >/dev/null 2>&1; then
( cd "$TMP" && find "$BASE" -name "*.o" -exec gcov -p {} > /dev/null 2>&1 \; ) (cd "$TMP" && find "$BASE" -name "*.o" -exec gcov -p {} \; >/dev/null 2>&1)
NUM_GCOVS=$(find "$TMP" -name *.gcov | wc -l) NUM_GCOVS=$(find "$TMP" -name *.gcov | wc -l)
if [ $NUM_GCOVS -eq 0 ]; then if [ $NUM_GCOVS -eq 0 ]; then
echo "no gcov files produced, aborting" echo "no gcov files produced, aborting"

View file

@ -96,7 +96,7 @@ fi
REMOVE_TARGETS="*.yy *.ll *.y *.l \*/bro.dir/\* *.bif \*/zeek.dir/\* \*/src/3rdparty/\* \*/src/zeek/3rdparty/\* \*/auxil/\* " REMOVE_TARGETS="*.yy *.ll *.y *.l \*/bro.dir/\* *.bif \*/zeek.dir/\* \*/src/3rdparty/\* \*/src/zeek/3rdparty/\* \*/auxil/\* "
# 1. Move to base dir, create tmp dir # 1. Move to base dir, create tmp dir
cd ../../; cd ../../
mkdir "$TMP" mkdir "$TMP"
# 2. Check for .gcno and .gcda file presence # 2. Check for .gcno and .gcda file presence

View file

@ -3,14 +3,14 @@
# Helper script for creating new external testing repos. See the # Helper script for creating new external testing repos. See the
# README for details. # README for details.
cwd=`pwd` cwd=$(pwd)
if [ -z "$1" ]; then if [ -z "$1" ]; then
echo "usage: $0 <name> [<dst-repo-url>]" echo "usage: $0 <name> [<dst-repo-url>]"
exit 1 exit 1
fi fi
name=`pwd`/$1 name=$(pwd)/$1
repo=$2 repo=$2
if [ -e $name ]; then if [ -e $name ]; then
@ -29,10 +29,10 @@ done
ln -s ../subdir-btest.cfg ./btest.cfg ln -s ../subdir-btest.cfg ./btest.cfg
cp $cwd/`dirname $0`/skel/test.skeleton tests cp $cwd/$(dirname $0)/skel/test.skeleton tests
cp $cwd/`dirname $0`/skel/traces.cfg . cp $cwd/$(dirname $0)/skel/traces.cfg .
cp $cwd/`dirname $0`/skel/Makefile . cp $cwd/$(dirname $0)/skel/Makefile .
cp $cwd/`dirname $0`/skel/.gitignore . cp $cwd/$(dirname $0)/skel/.gitignore .
git add * .gitignore git add * .gitignore

View file

@ -16,12 +16,12 @@ else
rm -f $diag rm -f $diag
fi fi
rc=0; rc=0
files_cwd=`ls $@` files_cwd=$(ls $@)
files_baseline=`cd $TEST_BASELINE && ls $@` files_baseline=$(cd $TEST_BASELINE && ls $@)
for i in `echo $files_cwd $files_baseline | sort | uniq`; do for i in $(echo $files_cwd $files_baseline | sort | uniq); do
if [[ "$i" != "loaded_scripts.log" && "$i" != "prof.log" && "$i" != "debug.log" && "$i" != "stats.log" && "$i" != broker_*.log ]]; then if [[ "$i" != "loaded_scripts.log" && "$i" != "prof.log" && "$i" != "debug.log" && "$i" != "stats.log" && "$i" != broker_*.log ]]; then
if [[ "$i" == "reporter.log" ]]; then if [[ "$i" == "reporter.log" ]]; then

View file

@ -3,6 +3,6 @@
# Returns a list of git repositories found in subdirs of the # Returns a list of git repositories found in subdirs of the
# current directory. # current directory.
for i in `find . -type d`; do for i in $(find . -type d); do
test -e $i/.git && echo $i test -e $i/.git && echo $i
done done

View file

@ -5,7 +5,7 @@
# traces.cfg must consist of lines of the form "<url> [<http-user>[:<http-password>]]" # traces.cfg must consist of lines of the form "<url> [<http-user>[:<http-password>]]"
if [ "$1" == "" ]; then if [ "$1" == "" ]; then
echo "usage: `basename $0` <traces-directory>" echo "usage: $(basename $0) <traces-directory>"
exit 1 exit 1
fi fi
@ -18,7 +18,7 @@ cfg=traces.cfg
for p in .proxy ../.proxy; do for p in .proxy ../.proxy; do
if [ -e $p ]; then if [ -e $p ]; then
proxy=`cat $p | head -1 | awk '{print $1}'` proxy=$(cat $p | head -1 | awk '{print $1}')
echo Using proxy $proxy ... echo Using proxy $proxy ...
proxy="ALL_PROXY=$proxy" proxy="ALL_PROXY=$proxy"
break break
@ -37,16 +37,16 @@ cat $cfg | while read line; do
continue continue
fi fi
url=`echo $line | awk '{print $1}'` url=$(echo $line | awk '{print $1}')
auth=`echo $line | awk '{print $2}'` auth=$(echo $line | awk '{print $2}')
file=$1/`echo $url | sed 's#^.*/##g'` file=$1/$(echo $url | sed 's#^.*/##g')
fp=$file.md5sum fp=$file.md5sum
if [ "$auth" != "" ]; then if [ "$auth" != "" ]; then
auth="-u $auth" auth="-u $auth"
# Hide the hostname and directory names in output messages # Hide the hostname and directory names in output messages
safe_url=`echo $url | sed 's#/[A-Za-z].*/#/[hidden]/#'` safe_url=$(echo $url | sed 's#/[A-Za-z].*/#/[hidden]/#')
else else
safe_url=$url safe_url=$url
fi fi

View file

@ -2,4 +2,4 @@
# #
# Default canonifier used with the tests in testing/btest/*. # Default canonifier used with the tests in testing/btest/*.
`dirname $0`/diff-remove-timestamps $(dirname $0)/diff-remove-timestamps

View file

@ -3,28 +3,27 @@
# Default canonifier used with the trace-based tests in testing/external/*. # Default canonifier used with the trace-based tests in testing/external/*.
if [ $# != 1 ]; then if [ $# != 1 ]; then
echo "usage: `basename $0` <filename>" echo "usage: $(basename $0) <filename>"
exit 1 exit 1
fi fi
filename=`basename $1` filename=$(basename $1)
addl="cat" addl="cat"
if [ "$filename" == "capture_loss.log" ]; then if [ "$filename" == "capture_loss.log" ]; then
addl="`dirname $0`/diff-remove-fractions" addl="$(dirname $0)/diff-remove-fractions"
fi fi
if [ "$filename" == "ssh.log" ]; then if [ "$filename" == "ssh.log" ]; then
addl="`dirname $0`/diff-remove-fields remote_location" addl="$(dirname $0)/diff-remove-fields remote_location"
fi fi
`dirname $0`/diff-remove-timestamps \ $(dirname $0)/diff-remove-timestamps |
| `dirname $0`/diff-remove-uids \ $(dirname $0)/diff-remove-uids |
| `dirname $0`/diff-remove-file-ids \ $(dirname $0)/diff-remove-file-ids |
| `dirname $0`/diff-remove-x509-names \ $(dirname $0)/diff-remove-x509-names |
| `dirname $0`/diff-sort-conn-service \ $(dirname $0)/diff-sort-conn-service |
| `dirname $0`/diff-sort-set-elements \ $(dirname $0)/diff-sort-set-elements |
| `dirname $0`/diff-sort \ $(dirname $0)/diff-sort |
| eval $addl eval $addl

View file

@ -2,11 +2,11 @@
# #
# Replace absolute paths with the basename. # Replace absolute paths with the basename.
if [ `uname` == "Linux" ]; then if [ $(uname) == "Linux" ]; then
sed="sed -r" sed="sed -r"
else else
sed="sed -E" sed="sed -E"
fi fi
$sed 's#/+#/#g' | \ $sed 's#/+#/#g' |
$sed 's#/([^ :/]{1,}/){1,}([^ :/]{1,})#<...>/\2#g' $sed 's#/([^ :/]{1,}/){1,}([^ :/]{1,})#<...>/\2#g'

View file

@ -4,7 +4,7 @@
# prefix. # prefix.
if [ $# != 1 ]; then if [ $# != 1 ]; then
echo "usage: `basename $0` <field prefix>" echo "usage: $(basename $0) <field prefix>"
exit 1 exit 1
fi fi

View file

@ -3,4 +3,3 @@
# Replace fractions of double value (i.e., 3.14 -> 3.x). # Replace fractions of double value (i.e., 3.14 -> 3.x).
sed 's/\.[0-9]\{1,\}/.X/g' sed 's/\.[0-9]\{1,\}/.X/g'

View file

@ -3,7 +3,7 @@
# Replace timestamps in the #start/end markers in logs. # Replace timestamps in the #start/end markers in logs.
# Get us "modern" regexps with sed. # Get us "modern" regexps with sed.
if [ `uname` == "Linux" ]; then if [ $(uname) == "Linux" ]; then
sed="sed -r" sed="sed -r"
else else
sed="sed -E" sed="sed -E"

View file

@ -3,7 +3,7 @@
# Replace anything which looks like timestamps with XXXs (including the #start/end markers in logs). # Replace anything which looks like timestamps with XXXs (including the #start/end markers in logs).
# Get us "modern" regexps with sed. # Get us "modern" regexps with sed.
if [ `uname` == "Linux" ]; then if [ $(uname) == "Linux" ]; then
sed="sed -r" sed="sed -r"
else else
sed="sed -E" sed="sed -E"

View file

@ -8,11 +8,11 @@ if [ "$TMP" == "" ]; then
TMP=/tmp TMP=/tmp
fi fi
tmp=$TMP/`basename $0`.$$.tmp tmp=$TMP/$(basename $0).$$.tmp
cat >$tmp cat >$tmp
echo "### NOTE: This file has been sorted with `basename $0`." echo "### NOTE: This file has been sorted with $(basename $0)."
cat $tmp | grep ^# cat $tmp | grep ^#
cat $tmp | grep -v ^# | sort -s cat $tmp | grep -v ^# | sort -s

View file

@ -3,7 +3,7 @@
# Sleeps until a file comes into existence. # Sleeps until a file comes into existence.
if [[ $# -ne 2 ]]; then if [[ $# -ne 2 ]]; then
>&2 echo "usage: $0 <file to wait for> <max secs to wait>" echo >&2 "usage: $0 <file to wait for> <max secs to wait>"
exit 1 exit 1
fi fi
@ -15,10 +15,9 @@ while [[ ! -e $wait_file ]]; do
let "wait_count += 1" let "wait_count += 1"
if [[ $wait_count -ge $max_wait ]]; then if [[ $wait_count -ge $max_wait ]]; then
>&2 echo "error: file '$wait_file' does not exist after $max_wait seconds" echo >&2 "error: file '$wait_file' does not exist after $max_wait seconds"
exit 1 exit 1
fi fi
sleep 1 sleep 1
done done

View file

@ -76,7 +76,7 @@ fi
while [ $# -ne 0 ]; do while [ $# -ne 0 ]; do
case "$1" in case "$1" in
-*=*) optarg=`echo "$1" | sed 's/[-_a-zA-Z0-9]*=//'` ;; -*=*) optarg=$(echo "$1" | sed 's/[-_a-zA-Z0-9]*=//') ;;
*) optarg= ;; *) optarg= ;;
esac esac