#!/usr/bin/env bash # Monta o Andromeda Invaders (jogo de tiro de Susam Pal, MIT; um unico invaders.html, sem bibliotecas nem arquivos # de audio: o som e sintetizado no WebAudio) a partir do commit a883021 de github.com/susam/invaders. # # Mudancas no jogo (andromeda-invaders/andromeda-invaders-fredygames.patch): o endereco do fonte na tela final # deixa de ser um link (a pagina nao sai mais do site) e uma CSP bloqueia qualquer conexao externa. # # src/FredGames.Bundler/Builds/build-andromeda-invaders.sh # # Saida: artifacts/build/andromeda-invaders-a883021/{andromeda-invaders-a883021-dist.tar.gz} (dist/index.html); o # tar.gz sai igual em dois builds seguidos. set -euo pipefail COMMIT=a8830218e7a9034ac7d671f436abd4d6e30e8066 SHA256=3484c6394f2d9fe8abefc4df5063589697f50ab72fa9379f70cb810510e8f4cd here="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)" root="$(git -C "$here" rev-parse --show-toplevel 2>/dev/null || pwd)" out="$root/artifacts/build/andromeda-invaders-${COMMIT:0:7}" cache="$root/artifacts/build/cache" mkdir -p "$cache" if [ ! -f "$cache/andromeda-invaders-${COMMIT:0:7}.tar.gz" ]; then curl -fsSL --retry 4 "https://github.com/susam/invaders/archive/$COMMIT.tar.gz" -o "$cache/andromeda-invaders-${COMMIT:0:7}.tar.gz.partial" \ && mv "$cache/andromeda-invaders-${COMMIT:0:7}.tar.gz.partial" "$cache/andromeda-invaders-${COMMIT:0:7}.tar.gz" fi echo "$SHA256 $cache/andromeda-invaders-${COMMIT:0:7}.tar.gz" | shasum -a 256 -c - rm -rf "$out" mkdir -p "$out/tree" "$out/dist" tar -xzf "$cache/andromeda-invaders-${COMMIT:0:7}.tar.gz" -C "$out/tree" --strip-components 1 patch -s -p1 -d "$out/tree" < "$here/andromeda-invaders/andromeda-invaders-fredygames.patch" cp "$out/tree/invaders.html" "$out/dist/index.html" # dist/ vira um tar.gz deterministico (datas fixas, ordem fixa, sem dono). find "$out/dist" -exec touch -t 202604090000 {} + ( cd "$out" && find dist -type f | LC_ALL=C sort > files.txt \ && COPYFILE_DISABLE=1 tar --format=ustar --uid 0 --gid 0 --uname root --gname root -n -cf - -T files.txt \ | gzip -n -9 > "andromeda-invaders-${COMMIT:0:7}-dist.tar.gz" && rm files.txt ) rm -rf "$out/tree" ls -l "$out/andromeda-invaders-${COMMIT:0:7}-dist.tar.gz" shasum -a 256 "$out/andromeda-invaders-${COMMIT:0:7}-dist.tar.gz"