mirror of
https://gitlab.torproject.org/tpo/core/tor.git
synced 2024-11-30 15:43:32 +01:00
87ee49e016
Part of 31919.
47 lines
1.2 KiB
Bash
Executable File
47 lines
1.2 KiB
Bash
Executable File
#!/bin/sh
|
|
|
|
# Echo the name of every argument of this script that is not "perfect"
|
|
# according to coccinelle's --parse-c.
|
|
#
|
|
# If $TOR_COCCI_EXCEPTIONS_FILE is non-empty, skip any files that match the
|
|
# patterns in the exception file, according to "grep -f"
|
|
#
|
|
# If VERBOSE is non-empty, log spatch errors and skipped files.
|
|
|
|
top="$(dirname "$0")/../.."
|
|
|
|
exitcode=0
|
|
|
|
for fn in "$@"; do
|
|
|
|
if test "${TOR_COCCI_EXCEPTIONS_FILE}" ; then
|
|
skip_fn=$(echo "$fn" | grep -f "${TOR_COCCI_EXCEPTIONS_FILE}")
|
|
if test "${skip_fn}" ; then
|
|
if test "${VERBOSE}" != ""; then
|
|
echo "Skipping '${skip_fn}'"
|
|
fi
|
|
continue
|
|
fi
|
|
fi
|
|
|
|
if spatch --macro-file-builtins \
|
|
"$top"/scripts/coccinelle/tor-coccinelle.h \
|
|
--defined COCCI \
|
|
--parse-c "$fn" \
|
|
2>/dev/null | grep "perfect = 1" > /dev/null; then
|
|
: # it's perfect
|
|
else
|
|
echo "$fn"
|
|
if test "${VERBOSE}" != ""; then
|
|
spatch --macro-file-builtins \
|
|
"$top"/scripts/coccinelle/tor-coccinelle.h \
|
|
--defined COCCI \
|
|
--parse-c "$fn"
|
|
fi
|
|
exitcode=1
|
|
fi
|
|
|
|
done
|
|
|
|
exit "$exitcode"
|