#!/bin/sh # # This file is part of the coreboot project. # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; version 2 of the License. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software # Foundation, Inc. # #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" ]; then usage exit 1 fi LINTLOG=$(mktemp .tmpconfig.lintXXXXX); XMLFILE="$(dirname "$0")/junit.xml" FAILED=0; #check optional second command line parameter. #TODO: Add real command line handling if anything more is added 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 "\n%s\n" "$(basename "$script")" grep "^# DESCR:" "$script" | sed "s,.*DESCR: *,," echo "========" junit_write " " $script > "$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:" cat "$LINTLOG" junit_write " " rm -f "$LINTLOG" FAILED=$(( FAILED + 1 )) fi echo "========" junit_write ' ' done test $FAILED -eq 0 || { echo "ERROR: $FAILED test(s) failed."; rm -f "$LINTLOG" && exit 1; }; rm -f "$LINTLOG" junit_write ''