mirror of
https://gitlab.torproject.org/tpo/core/tor.git
synced 2025-02-26 15:42:34 +01:00
Check the tor-owned sources in an 0.3.5 directory layout, if no files are provided on the command line. Part of 31919.
52 lines
1.4 KiB
Bash
Executable file
52 lines
1.4 KiB
Bash
Executable file
#!/bin/sh
|
|
|
|
# If we have coccinelle installed, run try_parse.sh on every filename passed
|
|
# as an argument. If no filenames are supplied, scan a standard Tor 0.3.5 or
|
|
# later directory layout.
|
|
#
|
|
# Uses the default coccinelle exceptions file, or $TOR_COCCI_EXCEPTIONS_FILE,
|
|
# if it is set.
|
|
#
|
|
# Use TOR_COCCI_EXCEPTIONS_FILE=/dev/null check_cocci_parse.sh to disable
|
|
# the default exception file.
|
|
#
|
|
# If spatch is not installed, remind the user to install it, but exit with
|
|
# a success error status.
|
|
|
|
scripts_cocci="$(dirname "$0")"
|
|
top="$scripts_cocci/../.."
|
|
try_parse="$scripts_cocci/try_parse.sh"
|
|
|
|
exitcode=0
|
|
|
|
export TOR_COCCI_EXCEPTIONS_FILE="${TOR_COCCI_EXCEPTIONS_FILE:-$scripts_cocci/exceptions.txt}"
|
|
|
|
if ! command -v spatch; then
|
|
echo "Install coccinelle's spatch to check cocci C parsing!"
|
|
exit "$exitcode"
|
|
fi
|
|
|
|
if test $# -ge 1 ; then
|
|
"$try_parse" "$@"
|
|
exitcode=$?
|
|
else
|
|
# This is the layout in 0.3.5
|
|
"$try_parse" \
|
|
src/lib/*/*.[ch] \
|
|
src/core/*/*.[ch] \
|
|
src/feature/*/*.[ch] \
|
|
src/app/*/*.[ch] \
|
|
src/test/*.[ch] \
|
|
src/test/*/*.[ch] \
|
|
src/tools/*.[ch]
|
|
exitcode=$?
|
|
fi
|
|
|
|
if test "$exitcode" != 0 ; then
|
|
echo "Please fix these cocci parsing errors in the above files"
|
|
echo "Set VERBOSE=1 for more details"
|
|
echo "Try running test-operator-cleanup or 'make autostyle-operators'"
|
|
echo "As a last resort, you can modify scripts/coccinelle/exceptions.txt"
|
|
fi
|
|
|
|
exit "$exitcode"
|