[PATCH v2] check-spdk: check that tag is on first line
Stephen Hemminger
stephen at networkplumber.org
Thu Nov 6 02:22:00 CET 2025
For C files the tag needs to be on the first line.
Change how -q flag works; if no errors then command is completely
silent.
Signed-off-by: Stephen Hemminger <stephen at networkplumber.org>
---
devtools/check-spdx-tag.sh | 30 +++++++++++++++++++++++++-----
1 file changed, 25 insertions(+), 5 deletions(-)
diff --git a/devtools/check-spdx-tag.sh b/devtools/check-spdx-tag.sh
index 984825026e..65f00f6e5e 100755
--- a/devtools/check-spdx-tag.sh
+++ b/devtools/check-spdx-tag.sh
@@ -6,6 +6,7 @@
missing_spdx=0
wrong_license=0
+errors=0
warnings=0
quiet=false
verbose=false
@@ -29,15 +30,16 @@ check_spdx() {
git grep -L SPDX-License-Identifier -- $no_license_list > $tmpfile
missing_spdx=$(wc -l < $tmpfile)
+ errors=$((errors + missing_spdx))
$quiet || cat $tmpfile
}
build_exceptions_list() {
grep '.*|.*|.*|.*' license/exceptions.txt | grep -v 'TB Approval Date' |
while IFS='|' read license tb_date gb_date pattern ; do
- license=$(echo $license) # trim spaces
- git grep -l "SPDX-License-Identifier:[[:space:]]*$license" $pattern |
- sed -e 's/^/:^/'
+ license=$(echo $license) # trim spaces
+ git grep -l "SPDX-License-Identifier:[[:space:]]*$license" $pattern |
+ sed -e 's/^/:^/'
done
}
@@ -51,6 +53,7 @@ check_licenses() {
xargs grep -L -E 'SPDX-License-Identifier:[[:space:]]*(\(?|.* OR )BSD-3-Clause' > $tmpfile
wrong_license=$(wc -l < $tmpfile)
+ errors=$((errors + wrong_license))
$quiet || cat $tmpfile
}
@@ -63,7 +66,19 @@ check_boilerplate() {
git grep -l Redistribution -- \
':^license/' ':^/devtools/check-spdx-tag.sh' > $tmpfile
- warnings=$(wc -l <$tmpfile)
+ warnings=$(wc -l < $tmpfile)
+ $quiet || cat $tmpfile
+}
+
+check_firstline() {
+ if $verbose ; then
+ echo "Files with license text not on first line"
+ echo "-----------------------------------------"
+ fi
+ git grep -n SPDX-License-Identifier -- '*.[ch]' | awk -F: '$2 != 1 { print $1}' >$tmpfile
+
+ first_line=$(wc -l < $tmpfile)
+ warnings=$((warnings + first_line))
$quiet || cat $tmpfile
}
@@ -89,5 +104,10 @@ $verbose && echo
check_boilerplate
$verbose && echo
+check_firstline
+$verbose && echo
+
+$quiet && [ $errors = 0 ] && exit
+
echo "total: $missing_spdx missing SPDX, $wrong_license license errors, $warnings warnings"
-exit $((missing_spdx + wrong_license))
+exit $errors
--
2.51.0
More information about the dev
mailing list