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'
hooks:
- 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
pkg install -y bash git cmake swig bison python3 base64
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
pip install junit2html

View file

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

View file

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

View file

@ -19,18 +19,15 @@ fi
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" &>/dev/null && pwd)"
. ${SCRIPT_DIR}/common.sh
function pushd
{
function pushd {
command pushd "$@" >/dev/null || exit 1
}
function popd
{
function popd {
command popd "$@" >/dev/null || exit 1
}
function banner
{
function banner {
local msg="${1}"
printf "+--------------------------------------------------------------+\n"
printf "| %-60s |\n" "$(date)"
@ -38,8 +35,7 @@ function banner
printf "+--------------------------------------------------------------+\n"
}
function run_unit_tests
{
function run_unit_tests {
banner "Running unit tests"
pushd build
@ -48,15 +44,13 @@ function run_unit_tests
return 0
}
function prep_artifacts
{
function prep_artifacts {
banner "Prepare artifacts"
[[ -d .tmp ]] && rm -rf .tmp/script-coverage && tar -czf tmp.tar.gz .tmp
junit2html btest-results.xml btest-results.html
}
function run_btests
{
function run_btests {
banner "Running baseline tests: zeek"
pushd testing/btest
@ -75,8 +69,7 @@ function run_btests
return 0
}
function run_external_btests
{
function run_external_btests {
# 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
# fairly significant performance bug when running tests.

View file

@ -1,12 +1,12 @@
#! /usr/bin/env bash
unset ZEEK_DISABLE_ZEEKYGEN;
unset ZEEK_DISABLE_ZEEKYGEN
# If running this from btest, unset any of the environment
# variables that alter default script values.
unset ZEEK_DEFAULT_LISTEN_ADDRESS;
unset ZEEK_DEFAULT_LISTEN_RETRY;
unset ZEEK_DEFAULT_CONNECT_RETRY;
unset ZEEK_DEFAULT_LISTEN_ADDRESS
unset ZEEK_DEFAULT_LISTEN_RETRY
unset ZEEK_DEFAULT_CONNECT_RETRY
dir="$(cd "$(dirname "$0")" && pwd)"
source_dir="$(cd $dir/.. && pwd)"
@ -21,15 +21,14 @@ fi
case $output_dir in
/*) ;;
*) output_dir=`pwd`/$output_dir ;;
*) output_dir=$(pwd)/$output_dir ;;
esac
cd $build_dir
. zeek-path-dev.sh
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
if [ $? -ne 0 ]; then
@ -48,8 +47,7 @@ run_zeek
script_ref_dir=$output_dir/script-reference
mkdir -p $script_ref_dir
function generate_index
{
function generate_index {
echo "Generating $script_ref_dir/$2"
printf "$1\t*\t$script_ref_dir/$2\n" >$conf_file
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:
( cd $sourcedir && git submodule update --recursive --init )
" >&2;
exit 1;
" >&2
exit 1
fi
# Function to append a CMake cache entry definition to the
@ -179,7 +179,7 @@ has_enable_mobile_ipv6=0
# parse arguments
while [ $# -ne 0 ]; do
case "$1" in
-*=*) optarg=`echo "$1" | sed 's/[-_a-zA-Z0-9]*=//'` ;;
-*=*) optarg=$(echo "$1" | sed 's/[-_a-zA-Z0-9]*=//') ;;
*) optarg= ;;
esac
@ -408,7 +408,7 @@ if [ -z "$CMakeCommand" ]; then
echo "This package requires CMake, please install it first."
echo "Then you may use this script to configure the CMake build."
echo "Note: pass --cmake=PATH to use cmake in non-standard locations."
exit 1;
exit 1
fi
fi

View file

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

View file

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

View file

@ -56,8 +56,8 @@ function check_group_coverage {
OUTPUT="$3"
# Prints all the relevant directories
DIRS=$(for i in $(cut -f 5 "$DATA"); do basename "$i" | sed 's/#[^#]*$//'; done \
| sort | uniq | sed 's/^.*'"${SRC_FOLDER}"'//' | grep "^#s\+" )
DIRS=$(for i in $(cut -f 5 "$DATA"); do basename "$i" | sed 's/#[^#]*$//'; done |
sort | uniq | sed 's/^.*'"${SRC_FOLDER}"'//' | grep "^#s\+")
# "Generalize" folders unless it's from analyzers
DIRS=$(for i in $DIRS; do
if !(echo "$i" | grep "src#analyzer"); then
@ -76,8 +76,8 @@ function check_group_coverage {
fi
PERCENTAGE=$(echo "scale=3;100*$RUN/$TOTAL" | bc | tr "\n" " ")
printf "%-50s\t%12s\t%6s %%\n" "$i" "$RUN/$TOTAL" $PERCENTAGE \
| sed 's|#|/|g' >>$OUTPUT
printf "%-50s\t%12s\t%6s %%\n" "$i" "$RUN/$TOTAL" $PERCENTAGE |
sed 's|#|/|g' >>$OUTPUT
done
}
@ -98,7 +98,7 @@ echo "ok"
# ... if system does not have gcov installed, exit with message.
echo -n "Creating coverage files... "
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)
if [ $NUM_GCOVS -eq 0 ]; then
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/\* "
# 1. Move to base dir, create tmp dir
cd ../../;
cd ../../
mkdir "$TMP"
# 2. Check for .gcno and .gcda file presence

View file

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

View file

@ -16,12 +16,12 @@ else
rm -f $diag
fi
rc=0;
rc=0
files_cwd=`ls $@`
files_baseline=`cd $TEST_BASELINE && ls $@`
files_cwd=$(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" == "reporter.log" ]]; then

View file

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

View file

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

View file

@ -2,4 +2,4 @@
#
# 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/*.
if [ $# != 1 ]; then
echo "usage: `basename $0` <filename>"
echo "usage: $(basename $0) <filename>"
exit 1
fi
filename=`basename $1`
filename=$(basename $1)
addl="cat"
if [ "$filename" == "capture_loss.log" ]; then
addl="`dirname $0`/diff-remove-fractions"
addl="$(dirname $0)/diff-remove-fractions"
fi
if [ "$filename" == "ssh.log" ]; then
addl="`dirname $0`/diff-remove-fields remote_location"
addl="$(dirname $0)/diff-remove-fields remote_location"
fi
`dirname $0`/diff-remove-timestamps \
| `dirname $0`/diff-remove-uids \
| `dirname $0`/diff-remove-file-ids \
| `dirname $0`/diff-remove-x509-names \
| `dirname $0`/diff-sort-conn-service \
| `dirname $0`/diff-sort-set-elements \
| `dirname $0`/diff-sort \
| eval $addl
$(dirname $0)/diff-remove-timestamps |
$(dirname $0)/diff-remove-uids |
$(dirname $0)/diff-remove-file-ids |
$(dirname $0)/diff-remove-x509-names |
$(dirname $0)/diff-sort-conn-service |
$(dirname $0)/diff-sort-set-elements |
$(dirname $0)/diff-sort |
eval $addl

View file

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

View file

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

View file

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

View file

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

View file

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

View file

@ -8,11 +8,11 @@ if [ "$TMP" == "" ]; then
TMP=/tmp
fi
tmp=$TMP/`basename $0`.$$.tmp
tmp=$TMP/$(basename $0).$$.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 -v ^# | sort -s

View file

@ -3,7 +3,7 @@
# Sleeps until a file comes into existence.
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
fi
@ -15,10 +15,9 @@ while [[ ! -e $wait_file ]]; do
let "wait_count += 1"
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
fi
sleep 1
done

View file

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