#!/usr/bin/env bash # Gera o space-rescue.pyxapp (Space Rescue, Takashi Kitao, MIT no cabecalho do app) a partir do space_rescue.pyxapp oficial do # repositorio kitao/pyxel (commit 0ccb8f8), com um patch nosso (space-rescue/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-space-rescue.sh # # Saida: artifacts/build/space-rescue-0ccb8f8/space-rescue.pyxapp set -euo pipefail COMMIT=0ccb8f8514f6f68b93d62e64cf804c403d76bf39 SHA256=250ababacc8f8b50a0e12c30e966b81e6aea1d8559e065a9a734baf59ba82be9 here="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)" root="$(git -C "$here" rev-parse --show-toplevel 2>/dev/null || pwd)" out="$root/artifacts/build/space-rescue-0ccb8f8" cache="$root/artifacts/build/cache" mkdir -p "$cache" orig="$cache/kitao-space_rescue.pyxapp" [ -f "$orig" ] || curl -fsSL "https://raw.githubusercontent.com/kitao/pyxel/$COMMIT/python/pyxel/examples/apps/space_rescue.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/space_rescue" -p1 < "$here/space-rescue/no-quit-key.patch" python3 -I "$here/pyxapp.py" "$out/app/space_rescue" "$(cat "$out/app/space_rescue/.pyxapp_startup_script")" "$out/space-rescue.pyxapp" shasum -a 256 "$out/space-rescue.pyxapp"