#!/usr/bin/env sh # # # SPDX-License-Identifier: GPL-2.0-only #set -x # uncomment for debug usage () { printf "Usage: %s [--junit]\n" "$0" } #write to the junit xml file if --junit was specified junit_write () { if [ "$JUNIT" -eq 1 ]; then echo "$1" >> "$XMLFILE" fi } #verify the first command line parameter if [ -z "$1" ] || [ "$1" != "lint" ] && [ "$1" != "lint-stable" ] && \ [ "$1" != "lint-extended" ]; then usage exit 1 fi LINTLOG=$(mktemp .tmpconfig.lintXXXXXX); XMLFILE="$(dirname "$0")/junit.xml" if [ "$1" = "lint-extended" ]; then XMLFILE="$(dirname "$0")/extended-junit.xml" fi FAILED=0; #check optional second command line parameter. if [ "$2" = "--junit" ]; then JUNIT=1 echo '' > "$XMLFILE" junit_write '' else JUNIT=0 fi #run all scripts of the requested type for script in "$(dirname "$0")/${1}-"*; do printf "%s " "$(grep '^# DESCR:' "$script" | sed 's,.*DESCR: *,,')" printf "(%s): " "$(basename "$script")" junit_write " " $script | tee "$LINTLOG" #if the lint script gives any output, that's a failure if [ "$(wc -l < "$LINTLOG")" -eq 0 ]; then echo "success" junit_write " " else echo "test failed" junit_write " " rm -f "$LINTLOG" FAILED=$(( FAILED + 1 )) fi junit_write ' ' done rm -f "$LINTLOG" junit_write '' test $FAILED -eq 0 || { echo "ERROR: $FAILED test(s) failed."; exit 1; };