#!/usr/bin/env bash # Gera o spamality.love do Spamality! (jogo de tiro de arena de liquidev/iLiquid para a Open Jam 2018: codigo ISC no # cabecalho e no README, LICENSE do repositorio em MIT; arte, sons e a fonte geompixel do proprio autor, CC BY 4.0) # a partir do commit b787841 do repositorio liquidev/spamality (antes liquid600pgm/spamality), sem mudancas no codigo. # O .love e um zip deterministico (ordem alfabetica, data fixa, deflate) sem os projetos do Aseprite (*.ase), o # cover.kra/cover.png, scripts/, os README.md, .gitignore e CODE_OF_CONDUCT.md. # # src/FredGames.Bundler/Builds/build-spamality.sh # # Saida: artifacts/build/spamality-b787841/spamality.love set -euo pipefail COMMIT=b787841a4c157121a730cf82799802ce2281a26a SHA256=cd2e11c3f3c8777135d13eae847c42805a23f4552c22962d56028cf90bd141ff here="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)" root="$(git -C "$here" rev-parse --show-toplevel 2>/dev/null || pwd)" out="$root/artifacts/build/spamality-b787841" cache="$root/artifacts/build/cache" mkdir -p "$cache" tarball="$cache/spamality-b787841.tar.gz" [ -f "$tarball" ] || curl -fsSL "https://github.com/liquidev/spamality/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 python3 -I - "$out/tree" "$out/spamality.love" <<'PY' import os, sys, zipfile src, dest = sys.argv[1:] skip = ('README.md', 'jam/README.md', 'data/sprites/README.md', '.gitignore', 'CODE_OF_CONDUCT.md', 'cover.kra', 'cover.png') 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 skip or rel.startswith('scripts/'): 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/spamality.love"