#!/usr/bin/env bash
# Regenerates every file in output/. Needs JDK 25 (JAVA_HOME), Maven 3.9 and network access to Maven Central.
# The "before" app (Boot 3.5.16) is never built in place: each stage is copied to a scratch directory.
# Takes 15-25 minutes on a shared 2-vCPU box (each stage is a real Maven build and most start the app).
set -u
HERE=$(cd "$(dirname "$0")/.." && pwd); OUT=$HERE/output; W=${WORK:-/tmp/b4m-work}
MVN=${MVN:-mvn}; PORT=${PORT:-18090}; URL=http://localhost:$PORT
BOOT_OLD=3.5.16; BOOT_NEW=4.1.2
mkdir -p "$OUT"; rm -rf "$W"; mkdir -p "$W"
mv_() { local d=$1; shift; (cd "$d" && $MVN -B -T1 "$@" 2>&1 | grep -vE 'JAVA_TOOL_OPTIONS|^WARNING: |Download(ing|ed)' | sed "s#$W/##g"); }
stage() { rm -rf "$W/$1"; mkdir -p "$W/$1"; cp -r "$HERE/$2/pom.xml" "$HERE/$2/src" "$W/$1/"; }
bump() { sed -i "s#$BOOT_OLD#$BOOT_NEW#" "$W/$1/pom.xml"; }
AFTER_MAIN=$HERE/after/src/main/java/com/ankurm/migration
BEFORE_TEST=$HERE/before/src/test/java/com/ankurm/migration
# start