tools: add run_clang_tidy_common.sh to apply clang-tidy fixes for Lts/Common

This commit is contained in:
torsten committed 2026-07-17 17:51:14 +02:00
1 parent 5c1896a930
commit 0d5990f127
1 file changed
+36
+36
View File
@@ -0,0 +1,36 @@
#!/usr/bin/env bash
set -euo pipefail
echo "Ensuring clang-tidy and clang-format are installed"
apt-get update
apt-get install -y clang-tidy clang-format || true
BUILD_DIR=/repo/build_migrate_Lts_Common
if [ ! -f "$BUILD_DIR/compile_commands.json" ]; then
echo "Regenerating compile_commands.json"
cmake -S /repo -B $BUILD_DIR -G Ninja -DCMAKE_PREFIX_PATH=/opt/Qt/6.8.3/gcc_64 -DCMAKE_CXX_STANDARD=20 -DMIGRATE_MODULE=Lts/Common -DBUILD_TESTING=ON -DCMAKE_EXPORT_COMPILE_COMMANDS=ON
fi
echo "Running clang-tidy (safe modernize checks)"
CHECKS="modernize-*,-modernize-use-trailing-return-type,-modernize-raw-string-literal"
# Process each C/C++ source/header under Lts/Common
git ls-files Lts/Common | grep -E '\.(cpp|cc|cxx|h|hpp)$' | while read -r f; do
echo "clang-tidy $f"
clang-tidy "$f" -p "$BUILD_DIR" -checks="$CHECKS" --format-style=file -fix -quiet || true
done
# Format any modified files
git ls-files -m | grep '^Lts/Common' | while read -r f; do
echo "clang-format $f"
clang-format -i "$f" || true
done
# Commit changes if any
if [ -n "$(git status --porcelain)" ]; then
git add Lts/Common || true
git commit -m "migrate(Lts/Common): apply clang-tidy modernization fixes\n\nCo-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>" || true
fi
echo "Done. Modified files:"
git status --porcelain