#!/usr/bin/env bash # Gera o flash-blip.love do Flash-Blip (Aliet Exposito, MIT) a partir do commit f87e9db do repositorio, com um # patch nosso (publicado junto do fonte): # flash-blip/offline.patch tira tudo que usa a rede: o cliente HTTP vira um stub que sempre falha, sem # verificacao de versao no GitHub, sem placar online (nem pedido de nome) e sem os # links que abrem o navegador na tela About. # O .love e o conteudo de game/ (como o tools/build-love.sh do autor), em zip deterministico (ordem alfabetica, # data fixa, deflate), sem lib/overlayStats.lua (so para depuracao) e sem os .gitkeep/.luacheckrc/.vscode. # # src/FredGames.Bundler/Builds/build-flash-blip.sh # # Saida: artifacts/build/flash-blip-f87e9db/flash-blip.love set -euo pipefail COMMIT=f87e9db7fbdca967262fc746be0553481b31ccfc SHA256=700feb8e1c3c28cfc46cc8d4e2f2ff0571f1388fcdda982082e66dd63e5d83c9 here="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)" root="$(git -C "$here" rev-parse --show-toplevel 2>/dev/null || pwd)" out="$root/artifacts/build/flash-blip-f87e9db" cache="$root/artifacts/build/cache" mkdir -p "$cache" tarball="$cache/flash-blip-f87e9db.tar.gz" [ -f "$tarball" ] || curl -fsSL "https://github.com/plinkr/flash-blip/archive/$COMMIT.tar.gz" -o "$tarball" echo "$SHA256 $tarball" | shasum -a 256 -c - rm -rf "$out" mkdir -p "$out/tree" tar -xzf "$tarball" -C "$out/tree" --strip-components 1 patch -d "$out/tree" -p1 < "$here/flash-blip/offline.patch" python3 -I - "$out/tree/game" "$out/flash-blip.love" <<'PY' import os, sys, zipfile src, dest = sys.argv[1:] skip_files = ('.gitkeep', '.luacheckrc', 'lib/overlayStats.lua') names = [] for base, dirs, files in os.walk(src): dirs[:] = [d for d in dirs if not d.startswith('.')] for f in files: rel = os.path.relpath(os.path.join(base, f), src).replace(os.sep, '/') if rel in skip_files or f in skip_files: continue names.append(rel) with zipfile.ZipFile(dest, 'w', zipfile.ZIP_DEFLATED, compresslevel=9) as z: for rel in sorted(names): info = zipfile.ZipInfo(rel, (1980, 1, 1, 0, 0, 0)) info.compress_type = zipfile.ZIP_DEFLATED info.external_attr = 0o644 << 16 info.create_system = 3 with open(os.path.join(src, rel), 'rb') as fh: z.writestr(info, fh.read(), compresslevel=9) PY shasum -a 256 "$out/flash-blip.love"