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