#!/usr/bin/env bash # Gera o gaota.pyxapp do gaota (44O, MIT) a partir do commit 392c0da do repositorio, portado para o Pyxel 2.x # (o jogo e de 2019, escrito para o Pyxel 0.9; os dois patches/scripts abaixo ficam em Builds/gaota/): # gaota/convert-pyxel-assets.py converte assets/gaota.pyxel (pickle gzip do Pyxel 0.9.10, lido por um Unpickler # restrito) para o .pyxres que o Pyxel 2.x abre; # gaota/pyxel2-port.patch caption= vira title=, tilemap get/copy/bltm na API 2.x, setas e controle alem de # H J K L Z, sem a tecla Q que fecha o jogo (na web ele so congela). # O gaota.py do repositorio tem fim de linha CRLF; ele e normalizado para LF antes do patch. # O .pyxapp leva gaota.py, assets/gaota.pyxres e o LICENSE (MIT), com o marcador de script inicial; zip # deterministico (Builds/pyxapp.py): dois builds seguidos dao o mesmo sha256. # # src/FredGames.Bundler/Builds/build-gaota.sh # # Saida: artifacts/build/gaota-392c0da/gaota.pyxapp set -euo pipefail COMMIT=392c0dac008404057c10baf5dcf9630de3260b87 SHA256=cb3122f1c25603fb28b9db961ad778bc9aa9ff481efcea804c9526f43b397e05 here="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)" root="$(git -C "$here" rev-parse --show-toplevel 2>/dev/null || pwd)" out="$root/artifacts/build/gaota-392c0da" cache="$root/artifacts/build/cache" mkdir -p "$cache" tarball="$cache/gaota-392c0da.tar.gz" [ -f "$tarball" ] || curl -fsSL "https://github.com/44O/gaota/archive/$COMMIT.tar.gz" -o "$tarball" echo "$SHA256 $tarball" | shasum -a 256 -c - rm -rf "$out" mkdir -p "$out/tree" "$out/app/gaota/assets" tar -xzf "$tarball" -C "$out/tree" --strip-components 1 python3 -I -c " import sys p = sys.argv[1] s = open(p, newline='').read().replace('\r\n', '\n') open(p, 'w', newline='').write(s)" "$out/tree/gaota.py" patch -d "$out/tree" -p1 < "$here/gaota/pyxel2-port.patch" cp "$out/tree/gaota.py" "$out/tree/LICENSE" "$out/app/gaota/" python3 -I "$here/gaota/convert-pyxel-assets.py" "$out/tree/assets/gaota.pyxel" "$out/app/gaota/assets/gaota.pyxres" python3 -I "$here/pyxapp.py" "$out/app/gaota" gaota.py "$out/gaota.pyxapp" shasum -a 256 "$out/gaota.pyxapp"