diff --git a/tools/development/run_clang_tidy.sh b/tools/development/run_clang_tidy.sh new file mode 100755 index 000000000..d1e2d09a5 --- /dev/null +++ b/tools/development/run_clang_tidy.sh @@ -0,0 +1,37 @@ +#!/bin/zsh + +if [[ -z $RUN_CLANG_TIDY_PARALLEL ]]; then + export RUN_CLANG_TIDY_PARALLEL=1 + + typeset -a args files + while [[ -n $@ ]]; do + if [[ -f $1 ]]; then + files+=($1) + else + args+=($1) + fi + shift + done + + print -l $files | xargs -P $(nproc) -n 1 -d '\n' -I{} $0 {} $args + exit +fi + +SOURCE=${1} +OUT=${SOURCE}.tidy.out.txt +ERR=${SOURCE}.tidy.err.txt +shift + +clang-tidy $@ ${SOURCE} > ${OUT} 2> ${ERR} +RESULT=$? + +sed -E -i \ + -e '/^[0-9]+ warnings generated/d' \ + -e '/^Suppressed [0-9]+ warnings/d' \ + -e '/^Use -header-filter=/d' \ + ${ERR} + +if [[ ! -s ${OUT} ]] rm ${OUT} +if [[ ! -s ${ERR} ]] rm ${ERR} + +exit ${RESULT}