#!/usr/bin/env bash # Gera o pirate-fleet.pgapp do CAP - Pirate Battleship 0.0.8 (Givors Fabien, codigo e traducoes MIT; graficos e sons # CC0 de Damien Monteillard; musica "Titan" de Scott Buckley CC BY 4.0; fonte DejaVu Sans) a partir do commit 717bd3d # de forge.tedomum.net/cap-pirate-battleship/capbattleship, com o patch pirate-fleet/web.patch: laco principal # assincrono (pygbag, 30 quadros por segundo), idioma pela pagina (html lang) em vez do locale do sistema, config em # /saves, sem Quit, sem tela cheia e sem o endereco do projeto nos creditos, e o nome "Pirate Battleship" vira # "Pirate Fleet" no codigo e nas traducoes. So en e pt_BR: o .mo do pt_BR e compilado aqui (msgfmt) a partir do .po # com o nome trocado. Fora do pacote: dist/, screenshots/ e o resto do repositorio. # # O servidor do forge barra o download de tarball com um desafio anti-bot, entao o fonte vem de um git fetch do # commit pinado e de um `git archive` (tar deterministico, sha256 abaixo, guardado em artifacts/build/cache). # Zip deterministico (Builds/pgapp.py). # # src/FredGames.Bundler/Builds/build-pirate-fleet.sh # # Saida: artifacts/build/pirate-fleet-717bd3d/pirate-fleet.pgapp set -euo pipefail COMMIT=717bd3d64d97cc79613984bfa339e665e9f6c3da SHA256=524ed7b9ea00395ae125bdca18082e92736b8fbd5eeefa022c7fcec523df771e here="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)" root="$(git -C "$here" rev-parse --show-toplevel 2>/dev/null || pwd)" out="$root/artifacts/build/pirate-fleet-717bd3d" cache="$root/artifacts/build/cache" tarball="$cache/capbattleship-717bd3d.tar" mkdir -p "$cache" if [ ! -f "$tarball" ]; then tmp="$(mktemp -d "$cache/cap-clone.XXXXXX")" git -C "$tmp" init -q git -C "$tmp" fetch -q --depth 1 https://forge.tedomum.net/cap-pirate-battleship/capbattleship.git "$COMMIT" git -C "$tmp" archive --format=tar --prefix=capbattleship-717bd3d/ "$COMMIT" > "$tarball" rm -rf "$tmp" fi echo "$SHA256 $tarball" | shasum -a 256 -c - rm -rf "$out" mkdir -p "$out/src" "$out/tree/locale/pt_BR/LC_MESSAGES" tar -xf "$tarball" -C "$out/src" --strip-components 1 cp -R "$out/src/assets/." "$out/tree/" cp -R "$out/src/capbattleship" "$out/tree/capbattleship" patch -d "$out/tree" -p1 < "$here/pirate-fleet/web.patch" po="$out/src/locale/pt_BR/LC_MESSAGES/capbattleship.po" sed -e 's/^msgid "Pirate Battleship"$/msgid "Pirate Fleet"/' \ -e 's/^msgstr "Batalha Pirata"$/msgstr "Frota Pirata"/' "$po" > "$out/pt_BR.po" grep -q '^msgid "Pirate Fleet"$' "$out/pt_BR.po" msgfmt -o "$out/tree/locale/pt_BR/LC_MESSAGES/capbattleship.mo" "$out/pt_BR.po" find "$out/tree" -name __pycache__ -prune -exec rm -rf {} \; python3 -I "$here/pgapp.py" "$out/tree" "$out/pirate-fleet.pgapp" shasum -a 256 "$out/pirate-fleet.pgapp"