#!/usr/bin/env bash set -euo pipefail # Note: Source directory is qt-migration-legatus/qt6-after/qt6-migrated-legatus/ (submodule) SUBMODULE_PATH="qt-migration-legatus/qt6-after/qt6-migrated-legatus" echo "Ensuring clang-tidy and clang-format are installed" sudo apt-get update sudo 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/${SUBMODULE_PATH} -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 (relative to submodule path) git ls-files ${SUBMODULE_PATH}/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 "^${SUBMODULE_PATH}/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 ${SUBMODULE_PATH}/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