checkpatch: add scripts/check for batch processing

Co-Authored-By: @Consolatis
This commit is contained in:
Johan Malm 2022-10-14 23:16:01 +01:00 committed by Johan Malm
parent a361bae699
commit 4305f54e37
3 changed files with 61 additions and 2 deletions

10
scripts/README.md Normal file
View file

@ -0,0 +1,10 @@
These scripts are intended to be run from the project top-level directory
like this: `scripts/foo.sh`
- `scripts/check`: wrapper to check all files in `src/` and `include/`
- `scripts/checkpatch.pl`: Quick hack on the Linux kernel [checkpatch.pl]
to lint C files written according to the labwc coding style. Run like
this: `./checkpatch.pl --no-tree --terse --strict --file <file>`
[checkpatch.pl]: https://raw.githubusercontent.com/torvalds/linux/4ce9f970457899defdf68e26e0502c7245002eb3/scripts/checkpatch.pl

50
scripts/check Executable file
View file

@ -0,0 +1,50 @@
#!/bin/sh
file=
usage_message="Usage: check [OPTIONS]
OPTIONS:
--file=<filename> Specify file to check. If none specified, all
files in src/ and include/ will be checked.
"
run_checkpatch() {
nice scripts/checkpatch.pl --terse --no-tree --strict --file "$1"
return $?
}
run_checks () {
if [ ! -z "$file" ]; then
run_checkpatch "${file}"
return $?
fi
find src/ include/ \( -name "*.c" -o -name "*.h" \) -type f |
{
errors=0
while IFS= read -r file; do
run_checkpatch "$file" || errors=1
done
return ${errors}
}
}
main () {
for arg
do
opt=${arg%%=*}
var=${arg#*=}
case "$opt" in
--file)
file="$var" ;;
-h|--help)
printf '%b' "$usage_message"; exit 1 ;;
*)
printf '%b\n' "warn: unknown option $opt" >&2 ;;
esac
done
run_checks
}
main "$@"