#!/usr/bin/env bash # Gera o duckmaze.pgapp do Duckmaze 0.2 (Andy Balaam, 2006-2007, GPL-2-ou-posterior; os graficos sao desenhados no codigo e as # telas de titulo sao dele) a partir da etiqueta 0.2 do repositorio do autor (codeberg.org/andybalaam/duckmaze, importado do # SVN do SourceForge; commit 7bc7f1b, 10/11/2007, o mesmo da versao 0.2 publicada: sem a musica do fork de 2014), com o nosso # duckmaze/web.patch: porta de Python 2 para 3, lacos assincronos e timers proprios (pygbag nao tem pygame.event.wait nem # set_timer), saves em /saves, sem o editor de fases (as fases dele nao podem ser jogadas na 0.2), sem os itens de som e de sair. # Fora do pacote: o editor, as imagens e o executavel para GP2X, o material de empacotamento e a pagina do projeto. # Zip deterministico (Builds/pgapp.py). # # src/FredGames.Bundler/Builds/build-duckmaze.sh # # Saida: artifacts/build/duckmaze-0.2/duckmaze.pgapp set -euo pipefail COMMIT=7bc7f1ba7779b0f661c8f6d340df95cbacf53fdd SHA256=5af0c973dc5b8c38a8355d5fc43a959a3f1484310abac370a5fb843984100916 here="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)" root="$(git -C "$here" rev-parse --show-toplevel 2>/dev/null || pwd)" out="$root/artifacts/build/duckmaze-0.2" cache="$root/artifacts/build/cache" mkdir -p "$cache" tgz="$cache/duckmaze-7bc7f1b.tar.gz" [ -f "$tgz" ] || curl -fsSL "https://codeberg.org/andybalaam/duckmaze/archive/$COMMIT.tar.gz" -o "$tgz" echo "$SHA256 $tgz" | shasum -a 256 -c - rm -rf "$out" mkdir -p "$out/tree" tar -xzf "$tgz" -C "$out/tree" --strip-components 2 cd "$out/tree" patch -p1 < "$here/duckmaze/web.patch" rm -rf dist doc duckmaze-tvout.gpe duckmaze.gpe images-gp2x level_editor.py duckmazerc.txt mv duckmaze.py main.py find . -name __pycache__ -prune -exec rm -rf {} \; python3 -I "$here/pgapp.py" "$out/tree" "$out/duckmaze.pgapp" shasum -a 256 "$out/duckmaze.pgapp"