#!/usr/bin/env bash # Gera o forgotten-angel.pgapp do The Forgotten Angel (Christopher Night e Mary Bichner, PyWeek 19, 2014) a partir do tgz # original do PyWeek (sha256 abaixo), portado de Python 2 para 3 por um patch (forgotten-angel/web.patch): sintaxe (2to3), # divisao inteira, sem numpy (transparencia e tingimento das imagens so com o pygame), laco principal assincrono # (exigido pelo pygbag), sem o botao Quit, saves em /saves, pickles lidos com encoding latin1 e o main.py da raiz. Fora do # .pgapp: as quatro musicas de Mary Bichner (so "permission given to distribute with this game", nao e licenca livre; o jogo # fica sem som e o patch tira o credito delas da tela de titulo), as ferramentas de geracao de mapa (Python 2) e o .pyw. # Zip deterministico (Builds/pgapp.py). # # src/FredGames.Bundler/Builds/build-forgotten-angel.sh # # Saida: artifacts/build/forgotten-angel/forgotten-angel.pgapp set -euo pipefail SHA256=7b8275d0101d89e003b3dc725d267452dbd59c462b1380df05a00da4e7c0e3c9 here="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)" root="$(git -C "$here" rev-parse --show-toplevel 2>/dev/null || pwd)" out="$root/artifacts/build/forgotten-angel" cache="$root/artifacts/build/cache" mkdir -p "$cache" zip="$cache/forgotten-angel-v1.tgz" [ -f "$zip" ] || curl -fsSL "https://s3.eu-west-2.amazonaws.com/media.pyweek.org/19/unifac19/forgotten-angel-v1.tgz" -o "$zip" echo "$SHA256 $zip" | shasum -a 256 -c - rm -rf "$out" mkdir -p "$out/tree" tar -xzf "$zip" -C "$out/tree" g="$out/tree/forgotten-angel" rm -rf "$g/tools" "$g/run_game.pyw" "$g/data/boss.ogg" "$g/data/equip.ogg" "$g/data/title.ogg" "$g/data/travel.ogg" find "$g" \( -name __pycache__ -o -name .DS_Store -o -name '*.pyc' -o -name '*.swp' \) -prune -exec rm -rf {} + patch -d "$g" -p1 < "$here/forgotten-angel/web.patch" python3 -I "$here/pgapp.py" "$g" "$out/forgotten-angel.pgapp" shasum -a 256 "$out/forgotten-angel.pgapp"