#!/usr/bin/env bash # Monta Tower of Tension (roguelike de combate com taco de beisebol de Lauren Hetherington, MIT; JavaScript puro em modulos ES, 7DRL 2020) # a partir do commit ab6a1f4 de github.com/laurheth/7drl-2020. Nao ha etapa de build: o script baixa o tarball (sha256), aplica # tower-of-tension/tower-of-tension-fredygames.patch (tira o @import da Google Fonts e os links de icones/manifest com caminho # absoluto), junta a fonte Courier Prime (OFL-1.1, a mesma que o autor pedia ao Google Fonts, do repositorio google/fonts no commit # pinado) em fonts/ e empacota so o que o jogo usa, num tar.gz deterministico. # # src/FredGames.Bundler/Builds/build-tower-of-tension.sh # # Saida: artifacts/build/tower-of-tension-ab6a1f4/tower-of-tension-ab6a1f4-dist.tar.gz set -euo pipefail COMMIT=ab6a1f49ad8654a360151866ab590f55db37914c SHA256=b7d5237e9f95ffade06a2ad2113b7d10199e54e146532c09b0478674f5319747 GF=24ddc1f324cac5d9f5aedca126d298f56e3f1640 REG=72f793376f8e2841656bf21d77a5de010f2929bd6956a22ee848ad0c7eb978af BOLD=ff1f38786c849d1c41fa8e447960abdb2bd75fdfb0cfcdeb524fad65a5af3638 OFL=9a755af092b494944c99f471be6fddd19b006a448fefdc4717e4ee0aa09a97b0 here="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)" root="$(git -C "$here" rev-parse --show-toplevel 2>/dev/null || pwd)" out="$root/artifacts/build/tower-of-tension-${COMMIT:0:7}" cache="$root/artifacts/build/cache" tgz="$cache/tower-of-tension-${COMMIT:0:7}.tar.gz" fetch() { # url sha256 destino [ -f "$3" ] || { curl -fsSL --retry 4 "$1" -o "$3.partial" && mv "$3.partial" "$3"; } echo "$2 $3" | shasum -a 256 -c - >/dev/null } mkdir -p "$cache" fetch "https://github.com/laurheth/7drl-2020/archive/$COMMIT.tar.gz" "$SHA256" "$tgz" gfurl="https://raw.githubusercontent.com/google/fonts/$GF/ofl/courierprime" fetch "$gfurl/CourierPrime-Regular.ttf" "$REG" "$cache/CourierPrime-Regular.ttf" fetch "$gfurl/CourierPrime-Bold.ttf" "$BOLD" "$cache/CourierPrime-Bold.ttf" fetch "$gfurl/OFL.txt" "$OFL" "$cache/OFL-courierprime.txt" rm -rf "$out" mkdir -p "$out/tree" "$out/dist/fonts" tar -xzf "$tgz" -C "$out/tree" --strip-components 1 cd "$out/tree" patch -s -p1 < "$here/tower-of-tension/tower-of-tension-fredygames.patch" cp index.html "$out/dist/" cp -R scripts styles "$out/dist/" rm -rf "$out/dist/styles/scss" cp "$cache/CourierPrime-Regular.ttf" "$cache/CourierPrime-Bold.ttf" "$out/dist/fonts/" cp "$cache/OFL-courierprime.txt" "$out/dist/fonts/OFL.txt" cp LICENSE "$out/dist/LICENSE.txt" if grep -rqE 'https?://' "$out/dist/index.html" "$out/dist/styles" "$out/dist/scripts"; then echo "Endereco externo" >&2; exit 1; fi 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 > "tower-of-tension-${COMMIT:0:7}-dist.tar.gz" && rm files.txt ) rm -rf "$out/tree" shasum -a 256 "$out/tower-of-tension-${COMMIT:0:7}-dist.tar.gz"