#!/bin/sh echo "Doing clang-tidy..." bool=false # explicitly set IFS to contain only a line feed IFS=' ' filelist="$(find . -not \( -path './*build*' -prune \) -type f ! -name "$(printf "*\n*")")" for file in $filelist; do if echo "$file" | grep -q -E ".*(\.cpp|\.hpp)$" ; then #Extra check missing dependencies due to clang-tidy doesn't toggle exit code. clang_tidy_lib_check="$(clang-tidy -warnings-as-errors='*' -header-filter='.*,-cpptoml.hpp' "$file" -- -I. -std=c++14 2>&1)" for tidy_line in $clang_tidy_lib_check; do echo "$tidy_line" | grep -q -v -E "^Error while processing*" if [ $? -eq 1 ]; then bool=true fi echo "$tidy_line" | grep -q -v -E ".* error: .*" if [ $? -eq 1 ]; then bool=true fi echo "$tidy_line" done fi done if $bool; then exit 1 else echo "No clang-tidy errors found." fi exit 0