#!/usr/bin/env bash # Gera o uslingborg-defense.pgapp do Uslingborg Defense (Christopher Night, PyWeek 14, 2011) a partir do zip original do # PyWeek (sha256 abaixo), portado de Python 2 para 3 por um patch (uslingborg-defense/web.patch): sintaxe (2to3), divisao # inteira, sem numpy (a textura do mapa e o tingimento das imagens sao feitos so com o pygame), laco principal # assincrono (exigido pygbag), Esc nao sai, sem a fala (os .ogg de fala nao estao no pacote) e o main.py da raiz. # Fora do .pgapp: "Lame Monster Party" de Paul and Storm (CC BY-NC-SA, nao serve; a fase final usa outra faixa do # proprio jogo), a captura de tela e o .pyw. Zip deterministico (Builds/pgapp.py). # # src/FredGames.Bundler/Builds/build-uslingborg-defense.sh # # Saida: artifacts/build/uslingborg-defense/uslingborg-defense.pgapp set -euo pipefail SHA256=f7f5f12021354fc44159cf5dbe1670e71950d82e212ece4d362cb816f1e4e5c5 here="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)" root="$(git -C "$here" rev-parse --show-toplevel 2>/dev/null || pwd)" out="$root/artifacts/build/uslingborg-defense" cache="$root/artifacts/build/cache" mkdir -p "$cache" zip="$cache/uslingborg.zip" [ -f "$zip" ] || curl -fsSL "https://s3.eu-west-2.amazonaws.com/media.pyweek.org/14/unifac14/uslingborg.zip" -o "$zip" echo "$SHA256 $zip" | shasum -a 256 -c - rm -rf "$out" mkdir -p "$out/tree" unzip -q "$zip" -d "$out/tree" -x '__MACOSX/*' g="$out/tree/uslingborg" rm -rf "$g/data/lame-monster-party.ogg" "$g/screenshot.png" "$g/run_game.pyw" find "$g" \( -name __pycache__ -o -name .DS_Store -o -name '*.pyc' -o -name '*.swp' \) -prune -exec rm -rf {} + patch -d "$g" -p1 < "$here/uslingborg-defense/web.patch" python3 -I "$here/pgapp.py" "$g" "$out/uslingborg-defense.pgapp" shasum -a 256 "$out/uslingborg-defense.pgapp"