69 lines
1.6 KiB
Bash
Executable File
69 lines
1.6 KiB
Bash
Executable File
#!/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."
|
|
exit 0
|
|
fi
|
|
|
|
git commit -m "migrate: Qt5/C++11 app to Qt6/C++23 with tests and modern Qt APIs"
|
|
|
|
echo
|
|
echo "== Checkpoints nach der Session =="
|
|
entire checkpoint list
|
|
entire checkpoint explain HEAD || true
|