12345678910111213141516171819202122232425262728293031323334353637383940414243444546 |
- #!/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"
|