devtools: set DTS directory in format check

The script was running on the current directory.
If not in the DTS directory, it would re-format every Python files.

A new positional argument is added to specify the directory to check.
In most cases, the (new) default value should be enough.

While updating argument handling,
the usage is printed in case of wrong argument.

The directory is also printed in headings,
and a last heading is added for the summary part.

Signed-off-by: Thomas Monjalon <thomas@monjalon.net>
Reviewed-by: Owen Hilyard <ohilyard@iol.unh.edu>
Reviewed-by: Juraj Linkeš <juraj.linkes@pantheon.tech>
Tested-by: Juraj Linkeš <juraj.linkes@pantheon.tech>
This commit is contained in:
Thomas Monjalon 2022-11-09 18:09:21 +01:00
parent 84f8e7c029
commit 830bf2a04f

View File

@ -3,11 +3,10 @@
# Copyright(c) 2022 University of New Hampshire
usage() {
echo "Run formatting and linting programs for DTS. Usage:"
echo "Usage: $(basename $0) [options] [directory]"
echo 'Options:'
# Get source code comments after getopts arguments and print them both
grep -E '[a-zA-Z]+\) +#' "$0" | tr -d '#'
exit 0
}
format=true
@ -17,7 +16,9 @@ lint=true
while getopts "hfl" arg; do
case $arg in
h) # Display this message
echo 'Run formatting and linting programs for DTS.'
usage
exit 0
;;
f) # Don't run formatters
format=false
@ -25,17 +26,27 @@ while getopts "hfl" arg; do
l) # Don't run linter
lint=false
;;
*)
?)
usage
exit 1
esac
done
shift $(($OPTIND - 1))
directory=$(realpath --relative-base=$(pwd) ${1:-$(dirname $0)/../dts})
cd $directory || exit 1
heading() {
echo $*
echo $* | sed 's/./-/g' # underline
}
errors=0
if $format; then
if command -v git > /dev/null; then
if git rev-parse --is-inside-work-tree >&-; then
echo "Formatting:"
heading "Formatting in $directory/"
if command -v black > /dev/null; then
echo "Formatting code with black:"
black .
@ -72,7 +83,7 @@ if $lint; then
if $format; then
echo
fi
echo "Linting:"
heading "Linting in $directory/"
if command -v pylama > /dev/null; then
pylama .
errors=$((errors + $?))
@ -83,5 +94,6 @@ if $lint; then
fi
echo
heading "Summary for $directory/"
echo "Found $errors errors"
exit $errors