#!/usr/bin/env bash # Monta o Infinite Cars (jogo de desviar de obstaculos na estrada, de Takane Ichinose, GPL-3.0; Phaser 3.55.2) a partir do commit 8b05f1d de # github.com/takaneichinose/infinite-cars: os arquivos estaticos do autor, sem build, com o patch infinite-cars/infinite-cars-fredygames.patch. # # Mudanca: so o index.html (CSP que bloqueia qualquer requisicao fora da pasta; sem o console.clear() inline, que a CSP barra). O phaser.min.js do repositorio # e byte a byte o dist/phaser.min.js do pacote npm phaser 3.55.2 (MIT). Ficam de fora os icones de Android (so servem a um app) e o README/LICENSE (o texto vai em # LICENSE.txt do jogo e em licenses.txt). # # src/FredGames.Bundler/Builds/build-infinite-cars.sh # # Saida: artifacts/build/infinite-cars-8b05f1d/{infinite-cars-8b05f1d-dist.tar.gz,licenses.txt}; o tar.gz tem que sair igual em dois builds. set -euo pipefail COMMIT=8b05f1d48595a1292f0dd6d0e0f55e8886347f35 SHA256=a6b2aa1cba54abaa13934c030363bd63d9edb24cd9cceaf4ca6de91826422b82 here="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)" root="$(git -C "$here" rev-parse --show-toplevel 2>/dev/null || pwd)" out="$root/artifacts/build/infinite-cars-${COMMIT:0:7}" cache="$root/artifacts/build/cache" pp="$here/infinite-cars" mkdir -p "$cache" tgz="$cache/infinite-cars-${COMMIT:0:7}.tar.gz" if [ ! -f "$tgz" ]; then curl -fsSL --retry 4 "https://github.com/takaneichinose/infinite-cars/archive/$COMMIT.tar.gz" -o "$tgz.partial" && mv "$tgz.partial" "$tgz" fi echo "$SHA256 $tgz" | shasum -a 256 -c - rm -rf "$out" mkdir -p "$out/tree" "$out/dist" tar -xzf "$tgz" -C "$out/tree" --strip-components 1 patch -s -p1 -d "$out/tree" < "$pp/infinite-cars-fredygames.patch" cd "$out/tree" cp index.html "$out/dist/" cp -R styles scripts "$out/dist/" mkdir -p "$out/dist/assets" cp -R assets/audios assets/fonts assets/images "$out/dist/assets/" if grep -rnE "https?://[^\"' ]*" "$out/dist/index.html" "$out/dist/styles" "$out/dist/scripts/infinite-cars.processed.js" "$out/dist/scripts/scenes" "$out/dist/scripts/includes" | grep -v "http://www.apache" ; then echo "sobrou endereco externo" >&2; exit 1 fi { echo "== Infinite Cars (LICENSE do repositorio, GPL-3.0)" cat LICENSE echo echo "== Luckiest Guy (assets/fonts/LuckiestGuy-Regular.ttf; Apache-2.0, LICENSE.txt do google/fonts)" cat "$pp/LuckiestGuy-LICENSE.txt" echo echo "== Phaser 3.55.2 (scripts/libs/phaser.min.js; LICENSE.md)" cat "$pp/phaser-LICENSE.md" echo } > "$out/licenses.txt" find "$out/dist" -exec touch -t 202611040000 {} + ( 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 > "infinite-cars-${COMMIT:0:7}-dist.tar.gz" && rm files.txt ) du -sh "$out/dist" cd "$out" && rm -rf tree ls -l "$out/infinite-cars-${COMMIT:0:7}-dist.tar.gz" shasum -a 256 "$out/infinite-cars-${COMMIT:0:7}-dist.tar.gz" "$out/licenses.txt"