Currently we have a single extended regular expression defining files that clean-includes should ignore. This is now very long and awkward to read and edit.
Switch to having a list of newline-separated EREs that we write to a file for grep's -f option, so we can express them more legibly in the shell script. We allow for comments in the regex list, which lets us document why we have put the exclusions in. Signed-off-by: Peter Maydell <[email protected]> --- scripts/clean-includes | 28 ++++++++++++++++++++++------ 1 file changed, 22 insertions(+), 6 deletions(-) diff --git a/scripts/clean-includes b/scripts/clean-includes index 568033ee9c1..5ab3b071967 100755 --- a/scripts/clean-includes +++ b/scripts/clean-includes @@ -42,8 +42,6 @@ GIT=no DUPHEAD=no -# Extended regular expression defining files to ignore when using --all -XDIRREGEX='^(tests/tcg|tests/multiboot|tests/fp|tests/plugin|tests/uefi-test-tools|pc-bios|subprojects|contrib/plugins|tools/ebpf|ebpf/rss.bpf.skeleton.h|linux-user/(mips64|x86_64)/(cpu_loop|signal).c)' while true do @@ -83,15 +81,33 @@ if [ "$1" = "--all" ]; then set -- '.' fi -# We assume there are no files in the tree with spaces in their name -set -- $(git ls-files "$@" | grep '\.[ch]$' | grep -E -v "$XDIRREGEX") - # Annoyingly coccinelle won't read a scriptfile unless its # name ends '.cocci', so write it out to a tempfile with the # right kind of name. COCCIFILE="$(mktemp --suffix=.cocci)" +REGEXFILE="$(mktemp --suffix=.regex)" -trap 'rm -f -- "$COCCIFILE"' INT TERM HUP EXIT +trap 'rm -f -- "$COCCIFILE" "$REGEXFILE"' INT TERM HUP EXIT + +# List of extended regular expressions defining files to ignore +# Comments starting with '#' are permitted +grep -v '^#' >"$REGEXFILE" <<EOT +# These tests are generally standalone binaries +^tests/(tcg|multiboot|fp|plugin|uefi-test-tools) +# BIOS sources and third-party subprojects don't follow our rules +^pc-bios +^subprojects +# plugin binaries are standalone +^contrib/plugins +# the ebpf tool is standalone, and the skeleton header is autogenerated +^tools/ebpf +^ebpf/rss.bpf.skeleton.h +# These files just include some other .c file and have no content themselves +^linux-user/(mips64|x86_64)/(cpu_loop|signal).c +EOT + +# We assume there are no files in the tree with spaces in their name +set -- $(git ls-files "$@" | grep '\.[ch]$' | grep -E -v -f "$REGEXFILE") cat >"$COCCIFILE" <<EOT @@ -- 2.43.0
