#!/usr/bin/env bash # Pos-processamento comum de "flutter build web" para o fredygames.com. # post.sh [html-extra] # Fica so o necessario: o CanvasKit completo (canvaskit.js/.wasm), sem service worker, manifest, icones, # variantes do CanvasKit que a pagina nao escolhe (config.canvasKitVariant = full) nem arquivos .symbols; # index.html vem de index.html.in (CSP que so permite esta origem) e fredygames-storage.js isola o # localStorage por jogo. O fonte do licenciamento (NOTICES do Flutter e as licencas do motor, que o SDK traz # em bin/cache/pkg/sky_engine/LICENSE) fica em licenses/. set -euo pipefail here="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)" src="$1"; dst="$2"; id="$3"; title="$4"; bg="$5"; fg="$6"; extra="${7:-}" : "${FLUTTER_ROOT:?source env.sh antes}" rm -rf "$dst" mkdir -p "$dst" cp -R "$src/." "$dst/" cd "$dst" rm -rf flutter_service_worker.js manifest.json privacy_policy.html CNAME favicon.png favicon.ico icons version.json \ .last_build_id canvaskit/chromium canvaskit/webparagraph canvaskit/skwasm* canvaskit/wimp* canvaskit/*.symbols [ -f canvaskit/canvaskit.wasm ] && [ -f canvaskit/canvaskit.js ] cp "$here/fredygames-storage.js" fredygames-storage.js sed -e "s|@ID@|$id|g" -e "s|@TITLE@|$title|g" -e "s|@BG@|$bg|g" -e "s|@FG@|$fg|g" "$here/index.html.in" | python3 -I -c " import sys extra = sys.argv[1] sys.stdout.write(sys.stdin.read().replace('@EXTRA@', extra))" "$extra" > index.html mkdir -p licenses cp "$FLUTTER_ROOT/LICENSE" licenses/flutter-LICENSE.txt cp "$FLUTTER_ROOT/bin/cache/pkg/sky_engine/LICENSE" licenses/flutter-engine-LICENSE.txt TZ=UTC find . -exec touch -t 202001010000 {} +