#!/bin/bash # Build reproductible du joueur Escampe (partie 3). # Produit dans dist/ : # - Puyaubreau_Russac.jar : jar exécutable (point d'entrée escampe.ClientJeu) # - mainClass : descripteur attendu par le tournoi # - Puyaubreau_Russac.tgz : archive de rendu (Puyaubreau_Russac/src + mainClass + jar) # - Puyaubreau_Russac_rapport.pdf : rapport (via PyMuPDF ; sauter avec --no-report) set -e ROOT="$(cd "$(dirname "$0")" && pwd)"; cd "$ROOT" WITH_REPORT=1; [ "${1:-}" = "--no-report" ] && WITH_REPORT=0 NAME="Puyaubreau_Russac" JAR="$NAME.jar" PLAYER="escampe.JoueurPuyaubreauRussac" CLIENT="escampe.ClientJeu" # Classes de PRODUCTION (on exclut les utilitaires de test : VerifMoves, RulesTest, Bench). RUNTIME="IJoueur ClientJeu Solo Applet Partie1 EscampeBoard Moteur JoueurPuyaubreauRussac" echo "[1/4] Compilation des classes de production…" rm -rf build dist mkdir -p build dist SRCS="" for c in $RUNTIME; do SRCS="$SRCS src/escampe/$c.java"; done javac -d build $SRCS echo "[2/4] Création du jar exécutable ($JAR)…" jar --create --file "dist/$JAR" --main-class "$CLIENT" -C build escampe echo "[3/4] Écriture du fichier mainClass…" printf 'jar:%s\nclientClass:%s\nmainClass:%s\n' "$JAR" "$CLIENT" "$PLAYER" > dist/mainClass echo "[4/4] Assemblage de l'archive de rendu…" rm -rf "dist/$NAME" mkdir -p "dist/$NAME/src/escampe" cp src/escampe/*.java "dist/$NAME/src/escampe/" cp dist/mainClass "dist/$NAME/mainClass" cp "dist/$JAR" "dist/$NAME/$JAR" ( cd dist && tar czf "$NAME.tgz" "$NAME" ) REPORT="" if [ "$WITH_REPORT" = "1" ]; then echo "[5/5] Génération du rapport PDF…" if python tools/make_report_pdf.py >/dev/null 2>&1; then REPORT=" dist/${NAME}_rapport.pdf" else echo " (PDF non généré : PyMuPDF indisponible — relancer 'python tools/make_report_pdf.py')" fi fi echo "----------------------------------------------------" echo "OK :" echo " dist/$JAR" echo " dist/mainClass" echo " dist/$NAME.tgz" [ -n "$REPORT" ] && echo "$REPORT" echo "Lancement tournoi (rappel) :" echo " java -cp $JAR $CLIENT $PLAYER "