12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364 |
- #! /bin/bash
- function setup_for_format() {
- if [ -z "${CLANG_FORMAT}" ]; then
- CLANG_FORMAT=clang-format
- fi
- echo "LINT: Using binary $CLANG_FORMAT"
- CLANG_FORMAT_WHITELIST="util/ci/clang-format-whitelist.txt"
- files_to_lint="$(find src/ -name '*.cpp' -or -name '*.h')"
- }
- function check_format() {
- echo "Checking format..."
- setup_for_format
- local errorcount=0
- local fail=0
- for f in ${files_to_lint}; do
- d=$(diff -u "$f" <(${CLANG_FORMAT} "$f") || true)
- if ! [ -z "$d" ]; then
- whitelisted=$(awk '$1 == "'$f'" { print 1 }' "$CLANG_FORMAT_WHITELIST")
- # If file is not whitelisted, mark a failure
- if [ -z "${whitelisted}" ]; then
- errorcount=$((errorcount+1))
- printf "The file %s is not compliant with the coding style" "$f"
- if [ ${errorcount} -gt 50 ]; then
- printf "\nToo many errors encountered previously, this diff is hidden.\n"
- else
- printf ":\n%s\n" "$d"
- fi
- fail=1
- fi
- fi
- done
- if [ "$fail" = 1 ]; then
- echo "LINT reports failure."
- exit 1
- fi
- echo "LINT OK"
- }
- function fix_format() {
- echo "Fixing format..."
- setup_for_format
- for f in ${files_to_lint}; do
- whitelisted=$(awk '$1 == "'$f'" { print 1 }' "$CLANG_FORMAT_WHITELIST")
- if [ -z "${whitelisted}" ]; then
- echo "$f"
- $CLANG_FORMAT -i "$f"
- fi
- done
- }
|