blob: 5eeaf29155f4bca895a0c7d18e456a93d618be80 [file] [log] [blame]
#!/bin/sh
# Copyright lowRISC contributors.
# Licensed under the Apache License, Version 2.0, see LICENSE for details.
# SPDX-License-Identifier: Apache-2.0
find sw hw \
\( -name '*.cpp' \
-o -name '*.cc' \
-o -name '*.c' \
-o -name '*.h' \) \
-exec clang-format -i {} \;
# Report on missing curly braces for loops and control statements.
# clang-format cannot fix them for us, so this requires manual work.
#
# This does not cope with `do { ... } while (cond)` as used in macros (without
# the semicolon).
#
# This rule does not use the `.clang-format` file so vendor must be excluded.
braces_missing=$(
find sw hw \
-not \( -path '*/vendor/*' -prune \) \
\( -name '*.cpp' \
-o -name '*.cc' \
-o -name '*.c' \
-o -name '*.h' \) \
-exec grep -Hn -P '(^|\s)((if|while|for) \(.+\)|else\s*)$' {} \;
)
if [ ! -z "$braces_missing" ]; then
echo ERROR: Curly braces are missing from the following control or loop
echo statements. Please add them manually and re-run this script.
echo
echo "$braces_missing"
exit 1
fi