#!/usr/bin/env bash # Monta o Warden's Duty (Ondrej Zara, 7DRL 2015, ISC) a partir do commit 1c42888 de github.com/ondras/wardens-duty. # O app.js/app.css compilados (babel/less) ja vem no repositorio, entao nao ha etapa de build do autor. Mudancas em # wardens-duty/no-external.patch: sem os links de compartilhar (Twitter, Google+, Facebook), sem o link do YouTube # nem os de pagina do autor/GitHub, e sem o @import do Google Fonts (a Inconsolata, SIL OFL 1.1, vai junto, do # google/fonts no commit pinado; a Droid Sans Mono, que a folha de estilo citava, foi trocada pela Inconsolata). # # src/FredGames.Bundler/Builds/build-wardens-duty.sh # # Saida: artifacts/build/wardens-duty-1c42888/wardens-duty-1c42888-dist.tar.gz (pasta dist/; igual em dois builds). set -euo pipefail COMMIT=1c42888582dcea879042e85a16d1d2bd980e9fa5 SHA256=0b715b7bd6fe31e4dd38ca88eb58df43c8126a92b6d3ca86ca7a5d5b3ffdfc84 GF=https://raw.githubusercontent.com/google/fonts/9862abc066c9b83bf84c3e8ed1fc2d8d48f9bbf0 FONT_SHA256=23ded25b447074d00659392bf9b1123d89df55cb07b0ad9bfef3366d199b5fcb OFL_SHA256=29bd0cfd0fb2a45f9b057c834a057724bae1f63b525a8ac83d3e7525706d9f80 here="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)" root="$(git -C "$here" rev-parse --show-toplevel 2>/dev/null || pwd)" out="$root/artifacts/build/wardens-duty-${COMMIT:0:7}" cache="$root/artifacts/build/cache" tarball="wardens-duty-${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/ondras/wardens-duty/archive/$COMMIT.tar.gz" "$SHA256" "$tarball" fetch "$GF/ofl/inconsolata/Inconsolata%5Bwdth,wght%5D.ttf" "$FONT_SHA256" gf-inconsolata-Inconsolata-var.ttf fetch "$GF/ofl/inconsolata/OFL.txt" "$OFL_SHA256" gf-inconsolata-OFL.txt rm -rf "$out" mkdir -p "$out/tree" "$out/dist/fonts" tar -xzf "$cache/$tarball" -C "$out/tree" --strip-components 1 patch -s -p1 -d "$out/tree" < "$here/wardens-duty/no-external.patch" for f in index.html app.js app.css rot.min.js LICENSE; do cp "$out/tree/$f" "$out/dist/$f"; done cp "$cache/gf-inconsolata-Inconsolata-var.ttf" "$out/dist/fonts/Inconsolata.ttf" cp "$cache/gf-inconsolata-OFL.txt" "$out/dist/fonts/OFL.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 > "wardens-duty-${COMMIT:0:7}-dist.tar.gz" && rm files.txt ) rm -rf "$out/tree" ls -l "$out/wardens-duty-${COMMIT:0:7}-dist.tar.gz" shasum -a 256 "$out/wardens-duty-${COMMIT:0:7}-dist.tar.gz"