#!/usr/bin/env bash # Monta o Rogue Janitor (Lauren Hall, 7DRL 2019, MIT) a partir do commit 8bf1f80 de github.com/laurheth/rogue-janitor, sem etapa # de build do autor. Mudancas em rogue-janitor/no-external.patch: o rot.js 2.0.3 (BSD-3) deixa de vir do jsDelivr e # vai junto, pelo mesmo arquivo do npm (sha256 conferido), e a fonte Share Tech Mono do Google Fonts, que o jogo # nunca usava (o ROT.Display usa monospace), sai. # O index.html ganha tambem : sem ele o navegador le o texto UTF-8 como Latin-1. # # src/FredGames.Bundler/Builds/build-rogue-janitor.sh # # Saida: artifacts/build/rogue-janitor-8bf1f80/rogue-janitor-8bf1f80-dist.tar.gz (pasta dist/; igual em dois builds seguidos). set -euo pipefail COMMIT=8bf1f80ff5d111ec488cde9a190d9df7f7e4d743 SHA256=904af24aba4aef786068f73a05922a3409cb5c327c4cfd45bea085f088d79fa9 ROT_SHA256=9d635bbd95d44c9a26d58f0d364166397d740f9aa904b6b1d0b2c6ccbde54838 ROT_LICENSE_SHA256=3631775a89d4c07e804baedcc91b61c01b55f50d5715168099d6daf61f67763b GF=https://raw.githubusercontent.com/google/fonts/9862abc066c9b83bf84c3e8ed1fc2d8d48f9bbf0 here="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)" root="$(git -C "$here" rev-parse --show-toplevel 2>/dev/null || pwd)" out="$root/artifacts/build/rogue-janitor-${COMMIT:0:7}" cache="$root/artifacts/build/cache" tarball="rogue-janitor-${COMMIT:0:7}.tar.gz" fetch() { # url sha256 arquivo [ -f "$cache/$3" ] || curl -fsSL --retry 4 "$1" -o "$cache/$3" echo "$2 $cache/$3" | shasum -a 256 -c - >/dev/null } mkdir -p "$cache" fetch "https://github.com/laurheth/rogue-janitor/archive/$COMMIT.tar.gz" "$SHA256" "$tarball" fetch https://cdn.jsdelivr.net/npm/rot-js@2.0.3/dist/rot.js "$ROT_SHA256" rotjs-2.0.3-rot.js fetch https://cdn.jsdelivr.net/npm/rot-js@2.0.3/license.txt "$ROT_LICENSE_SHA256" rotjs-2.0.3-license.txt rm -rf "$out" mkdir -p "$out/tree" "$out/dist/script" "$out/dist/style" tar -xzf "$cache/$tarball" -C "$out/tree" --strip-components 1 patch -s -p1 -d "$out/tree" < "$here/rogue-janitor/no-external.patch" cp -R "$out/tree/index.html" "$out/tree/script" "$out/tree/style" "$out/tree/LICENSE" "$out/dist/" cp "$cache/rotjs-2.0.3-rot.js" "$out/dist/script/rot.js" cp "$cache/rotjs-2.0.3-license.txt" "$out/dist/script/rot.js.LICENSE.txt" find "$out/dist" -exec touch -t 202510300000 {} + ( 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 > "rogue-janitor-${COMMIT:0:7}-dist.tar.gz" && rm files.txt ) rm -rf "$out/tree" ls -l "$out/rogue-janitor-${COMMIT:0:7}-dist.tar.gz" shasum -a 256 "$out/rogue-janitor-${COMMIT:0:7}-dist.tar.gz"