#!/usr/bin/env bash set -euo pipefail PROJECT_DIR="${1:-qt5-before/qt5-legacy-migration-benchmark}" COPILOT_MODEL="${2:-qwen3.5-397b-a17b}" need_cmd() { command -v "$1" >/dev/null 2>&1 || { echo "ERROR: '$1' not found in PATH." >&2 exit 1 } } need_cmd entire need_cmd copilot need_cmd git if ! git rev-parse --show-toplevel >/dev/null 2>&1; then echo "ERROR: Dieses Skript muss innerhalb eines bestehenden Git-Repositories gestartet werden." >&2 echo "Bitte zuerst im Repo-Root 'git init' oder in einem bestehenden Repo arbeiten." >&2 exit 1 fi REPO_ROOT="$(git rev-parse --show-toplevel)" cd "$REPO_ROOT" if [ ! -d "$PROJECT_DIR" ]; then echo "ERROR: project directory '$PROJECT_DIR' not found relative to repo root '$REPO_ROOT'." >&2 exit 1 fi echo "Repo root: $REPO_ROOT" echo "Legacy project: $PROJECT_DIR" echo "Copilot model: $COPILOT_MODEL" entire agent add copilot-cli entire status git add . if git diff --cached --quiet; then git commit --allow-empty -m "baseline: Qt5/C++11 legacy benchmark before Qt6/C++23 migration" else git commit -m "baseline: Qt5/C++11 legacy benchmark before Qt6/C++23 migration" fi echo echo "== Checkpoints vor der Session ==" entire checkpoint list envsubst < scripts/migration.prompt | copilot --model "${COPILOT_MODEL}" echo echo "== Git status after Copilot session ==" git status --short git add . if git diff --cached --quiet; then echo "No changes to commit." else git commit -m "migrate: Qt5/C++11 app to Qt6/C++23 with tests and modern Qt APIs" fi echo echo "== Checkpoints nach der Session ==" entire checkpoint list entire checkpoint explain HEAD || true read -r -p "Optional Rewind testen? [y/N] " DO_REWIND if [[ "${DO_REWIND:-N}" =~ ^[Yy]$ ]]; then if ! entire checkpoint rewind; then echo "WARN: rewind not supported or failed." fi fi read -r -p "Optional Session-Resume-Hinweis ausgeben? [y/N] " DO_RESUME if [[ "${DO_RESUME:-N}" =~ ^[Yy]$ ]]; then CURRENT_BRANCH="$(git rev-parse --abbrev-ref HEAD)" if ! entire session resume "${CURRENT_BRANCH}"; then echo "WARN: resume not supported or failed." fi fi