#!/usr/bin/env bash # Gera o bit-maze.pyxapp do Pyxel Bit Maze (Takane Ichinose, MIT) a partir do commit 9addcf7 do repositorio, com um # patch de uma linha (bit-maze/no-quit-key.patch: sem tecla de sair, que na web so congela a pagina): o .pyxapp # leva so o que o jogo usa (bit_maze.py, scenes/, objects/, utils/, # assets/bit_maze.pyxres) mais o LICENSE (MIT exige o aviso junto das copias), com o marcador de script inicial. # Zip deterministico (Builds/pyxapp.py): dois builds seguidos dao o mesmo sha256. # # src/FredGames.Bundler/Builds/build-bit-maze.sh # # Saida: artifacts/build/bit-maze-9addcf7/bit-maze.pyxapp set -euo pipefail COMMIT=9addcf71a8bfdb28930a1d48d7c23a009a4a5e23 SHA256=3e909126ffda4d29bbf74a3501b539ecd7075e26af3411817c2f97fddb387d57 here="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)" root="$(git -C "$here" rev-parse --show-toplevel 2>/dev/null || pwd)" out="$root/artifacts/build/bit-maze-9addcf7" cache="$root/artifacts/build/cache" mkdir -p "$cache" tarball="$cache/bit-maze-9addcf7.tar.gz" [ -f "$tarball" ] || curl -fsSL "https://github.com/takaneichinose/pyxel_bit_maze/archive/$COMMIT.tar.gz" -o "$tarball" echo "$SHA256 $tarball" | shasum -a 256 -c - rm -rf "$out" mkdir -p "$out/tree" "$out/app/bit_maze" tar -xzf "$tarball" -C "$out/tree" --strip-components 1 patch -d "$out/tree" -p1 < "$here/bit-maze/no-quit-key.patch" cp -R "$out/tree/bit_maze.py" "$out/tree/scenes" "$out/tree/objects" "$out/tree/utils" "$out/tree/assets" "$out/tree/LICENSE" "$out/app/bit_maze/" python3 -I "$here/pyxapp.py" "$out/app/bit_maze" bit_maze.py "$out/bit-maze.pyxapp" shasum -a 256 "$out/bit-maze.pyxapp"