File indexing completed on 2024-05-19 05:42:35
0001 #!/bin/sh 0002 0003 POS_CHECKS="cert-*,cppcoreguidelines-*,modernize-*,performance-*,readability-*" 0004 NEG_CHECKS="-modernize-use-trailing-return-type,-cppcoreguidelines-special-member-functions,-cppcoreguidelines-pro-bounds-array-to-pointer-decay,-readability-implicit-bool-conversion,-cppcoreguidelines-pro-bounds-pointer-arithmetic,-cppcoreguidelines-owning-memory,-modernize-use-override,-readability-function-cognitive-complexity,-cppcoreguidelines-avoid-magic-numbers,-readability-magic-numbers,-readability-identifier-length,-readability-suspicious-call-argument,-cppcoreguidelines-init-variables,-cert-err58-cpp,-cppcoreguidelines-pro-type-reinterpret-cast,-cppcoreguidelines-pro-type-const-cast,-cppcoreguidelines-avoid-goto,-cppcoreguidelines-pro-type-vararg,-clang-analyzer-*" 0005 0006 EXEC=clang-tidy-14 0007 BUILD_DIR=build 0008 COMPILE_COMMANDS_JSON="$BUILD_DIR/compile_commands.json" 0009 PARALLEL=parallel 0010 0011 TARGET_DIRS="$*" 0012 0013 pr_err() 0014 { 0015 echo "ERROR: $*" 1>&2 0016 } 0017 0018 fatal() 0019 { 0020 pr_err "$*" 0021 exit 1 0022 } 0023 0024 if ! [ -d "$BUILD_DIR" ]; then 0025 fatal "$BUILD_DIR is not a directory" 0026 fi 0027 0028 if ! [ -f "$COMPILE_COMMANDS_JSON" ]; then 0029 fatal "$COMPILE_COMMANDS_JSON not found" 0030 fi 0031 0032 TARGET_FILES= 0033 0034 for dir in $TARGET_DIRS; do 0035 if ! [ -d "$dir" ]; then 0036 fatal "$dir not found" 0037 fi 0038 0039 for file in "$dir"/*.cpp; do 0040 TARGET_FILES="$TARGET_FILES $file" 0041 done 0042 done 0043 0044 for file in $TARGET_FILES; do 0045 if ! [ -f "$file" ]; then 0046 fatal "$file not found" 0047 fi 0048 done 0049 0050 # deglobbing $TARGET_FILES is intentional 0051 # shellcheck disable=SC2086 0052 if [ "$CLANG_TIDY_SERIAL" != "" ]; then 0053 echo "Running in serial" 0054 set -x 0055 "$EXEC" --checks="$POS_CHECKS,$NEG_CHECKS" --header-filter="^ct_.*" -p "$BUILD_DIR" --quiet --warnings-as-errors='*' -extra-arg=-Wno-unknown-warning-option $TARGET_FILES 0056 else 0057 echo "Running in parallel (default)" 0058 set -x 0059 "$PARALLEL" "$EXEC" --checks="$POS_CHECKS,$NEG_CHECKS" --header-filter="^ct_.*" -p "$BUILD_DIR" --quiet --warnings-as-errors='*' -extra-arg=-Wno-unknown-warning-option -- $TARGET_FILES 0060 fi