#!/usr/bin/env bash # Gera o towercraft.pyxapp de Towercraft (Son Link (Alfonso Saavedra), GPL-3.0) a partir do commit 8c651f5 do # repositorio son_link/Towercraft no Codeberg, com um patch nosso (publicado junto do fonte): # towercraft/quit-key-off.patch a tecla que fecha o jogo no desktop (Esc) so congela a pagina na web; fica desligada. # O .pyxapp leva so o que o jogo usa (towercraft.py e assets/, com a logo, a paleta, o .pyxres e as tres musicas # em JSON), com o marcador de script inicial; zip deterministico (Builds/pyxapp.py): dois builds seguidos dao o # mesmo sha256. (O towercraft.pyxapp do repositorio, para a versao online, nao e usado: o nosso sai do fonte.) # # src/FredGames.Bundler/Builds/build-towercraft.sh # # Saida: artifacts/build/towercraft-8c651f5/towercraft.pyxapp set -euo pipefail COMMIT=8c651f52d6057b0db18dd214a9ac6615042a1c84 SHA256=5b4808a86b618f1bb6b39722c1553325107cea262a877ad1bcc4d0ca03afa2c9 here="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)" root="$(git -C "$here" rev-parse --show-toplevel 2>/dev/null || pwd)" out="$root/artifacts/build/towercraft-8c651f5" cache="$root/artifacts/build/cache" mkdir -p "$cache" tarball="$cache/towercraft-8c651f5.tar.gz" [ -f "$tarball" ] || curl -fsSL "https://codeberg.org/son_link/Towercraft/archive/$COMMIT.tar.gz" -o "$tarball" echo "$SHA256 $tarball" | shasum -a 256 -c - rm -rf "$out" mkdir -p "$out/tree" "$out/app/towercraft" tar -xzf "$tarball" -C "$out/tree" --strip-components 1 patch -d "$out/tree" -p1 < "$here/towercraft/quit-key-off.patch" cp -R "$out/tree/towercraft.py" "$out/tree/assets" "$out/tree/COPYING" "$out/app/towercraft/" python3 -I "$here/pyxapp.py" "$out/app/towercraft" towercraft.py "$out/towercraft.pyxapp" shasum -a 256 "$out/towercraft.pyxapp"