#!/usr/bin/env bash # Gera o lunar-depot-38.love do Lunar Depot 38 (codigo de Eevee sob ISC; arte, sons, musica e fonte de glitchedpuppet # sob CC BY-SA 4.0) a partir do commit 81b645c do repositorio eevee/lunar-depot-38, com um patch nosso (publicado # junto do fonte): # lunar-depot-38/love-11.patch porta o jogo do LOVE 0.10.2 para o 11.x: compat.lua (setColor com 0-255 e # love.filesystem.isFile/isDirectory/exists), canvases desenhados com alpha # pre-multiplicado, inteiros nos shaders (GLSL ES), versao em conf.lua, e tira o # carregamento do gamecontrollerdb.txt. # O .love e um zip deterministico (ordem alfabetica, data fixa, deflate) sem os fontes do Aseprite (*.ase), o # README.md, o vendor/gamecontrollerdb.txt (nao usado depois do patch) e a fonte glip_serif.ttf (nao usada). # # src/FredGames.Bundler/Builds/build-lunar-depot-38.sh # # Saida: artifacts/build/lunar-depot-38-81b645c/lunar-depot-38.love set -euo pipefail COMMIT=81b645c9336ddd28144b2294f40877e6e5e22737 SHA256=2c03d10506a46b877463a600d59968a27a8fd0762c7c672dea570e856d771dff here="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)" root="$(git -C "$here" rev-parse --show-toplevel 2>/dev/null || pwd)" out="$root/artifacts/build/lunar-depot-38-81b645c" cache="$root/artifacts/build/cache" mkdir -p "$cache" tarball="$cache/lunar-depot-38-81b645c.tar.gz" [ -f "$tarball" ] || curl -fsSL "https://github.com/eevee/lunar-depot-38/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/lunar-depot-38/love-11.patch" python3 -I - "$out/tree" "$out/lunar-depot-38.love" <<'PY' import os, sys, zipfile src, dest = sys.argv[1:] names = [] for base, dirs, files in os.walk(src): for f in files: rel = os.path.relpath(os.path.join(base, f), src).replace(os.sep, '/') if rel.endswith('.ase') or rel in ('README.md', 'vendor/gamecontrollerdb.txt', 'assets/fonts/glip_serif.ttf') or rel.endswith('.orig'): 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/lunar-depot-38.love"