#!/usr/bin/env bash # Gera o dark-physics.pgapp do Dark Physics (mit-mit, PyWeek 36, 2023) a partir do zip original do PyWeek (sha256 abaixo), # com um patch (dark-physics/web.patch): laco principal assincrono (exigido pelo pygbag), o "Esc" do titulo nao faz nada # e o main.py da raiz (o do jogo vira src/dp_main.py). O jogo nao grava nada. Zip deterministico (Builds/pgapp.py). # # src/FredGames.Bundler/Builds/build-dark-physics.sh # # Saida: artifacts/build/dark-physics/dark-physics.pgapp set -euo pipefail SHA256=fb4b68ec41811b3c7bf4bc826629973fe6eef86746def59d875b3ad91295cb9c here="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)" root="$(git -C "$here" rev-parse --show-toplevel 2>/dev/null || pwd)" out="$root/artifacts/build/dark-physics" cache="$root/artifacts/build/cache" mkdir -p "$cache" zip="$cache/dark_physics_pyweek36_v1.zip" [ -f "$zip" ] || curl -fsSL "https://s3.eu-west-2.amazonaws.com/media.pyweek.org/36/mit-mit-36/dark_physics_pyweek36_v1.zip" -o "$zip" echo "$SHA256 $zip" | shasum -a 256 -c - rm -rf "$out" mkdir -p "$out/tree" unzip -q "$zip" -d "$out/tree" -x '__MACOSX/*' g="$out/tree/dark_physics_pyweek36_v1" find "$g" \( -name __pycache__ -o -name .DS_Store -o -name '*.pyc' -o -name '*.swp' \) -prune -exec rm -rf {} + patch -d "$g" -p1 < "$here/dark-physics/web.patch" python3 -I "$here/pgapp.py" "$g" "$out/dark-physics.pgapp" shasum -a 256 "$out/dark-physics.pgapp"