#!/usr/bin/env bash # Gera o mega-wing.pyxapp (Mega Wing, Takashi Kitao, MIT no cabecalho do app) a partir do mega_wing.pyxapp oficial do # repositorio kitao/pyxel (commit 0ccb8f8), com um patch nosso (mega-wing/no-quit-key.patch: sem tecla de sair, que na # web so congela a pagina). O .pyxapp original e desempacotado, o patch aplicado e o zip refeito de forma # deterministica (Builds/pyxapp.py): dois builds seguidos dao o mesmo sha256. # # src/FredGames.Bundler/Builds/build-mega-wing.sh # # Saida: artifacts/build/mega-wing-0ccb8f8/mega-wing.pyxapp set -euo pipefail COMMIT=0ccb8f8514f6f68b93d62e64cf804c403d76bf39 SHA256=cb6cae3b8df4526cae6b23100247296bd78e6c8d8ac49939648b28fc939f3324 here="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)" root="$(git -C "$here" rev-parse --show-toplevel 2>/dev/null || pwd)" out="$root/artifacts/build/mega-wing-0ccb8f8" cache="$root/artifacts/build/cache" mkdir -p "$cache" orig="$cache/kitao-mega_wing.pyxapp" [ -f "$orig" ] || curl -fsSL "https://raw.githubusercontent.com/kitao/pyxel/$COMMIT/python/pyxel/examples/apps/mega_wing.pyxapp" -o "$orig" echo "$SHA256 $orig" | shasum -a 256 -c - rm -rf "$out" mkdir -p "$out/app" python3 -I -c 'import sys, zipfile; zipfile.ZipFile(sys.argv[1]).extractall(sys.argv[2])' "$orig" "$out/app" patch -d "$out/app/mega_wing" -p1 < "$here/mega-wing/no-quit-key.patch" python3 -I "$here/pyxapp.py" "$out/app/mega_wing" "$(cat "$out/app/mega_wing/.pyxapp_startup_script")" "$out/mega-wing.pyxapp" shasum -a 256 "$out/mega-wing.pyxapp"