#!/usr/bin/env bash # Compila o Linefire (shooter vetorial de duas alavancas, de Cesar Gimenes / crgimenes, MIT; Go + Ebitengine 2.10.5) para WebAssembly a # partir do commit 6f1ce1d de github.com/crgimenes/linefire, com o Go 1.27.2 (Builds/go-ebiten/common.sh). # # src/FredGames.Bundler/Builds/build-linefire.sh # # Mudancas no jogo: nenhuma no codigo nem nos dados. A build e a do `make wasm` do projeto (./cmd/linefire, GOOS=js GOARCH=wasm), com os # flags de release dos outros jogos em Go do site; os mapas, os assets vetoriais e as 3 musicas (geradas com IA, ver music/README.md do # projeto) entram no binario pelo go:embed do proprio jogo. Os efeitos sonoros sao sintetizados pelo jogo (biblioteca gion). # # Saida: artifacts/build/linefire-6f1ce1d/{linefire.wasm,wasm_exec.js,linefire-licenses.txt}; dois builds seguidos dao os mesmos bytes. set -euo pipefail COMMIT=6f1ce1d5e895a3e9aa12ae7741d26ec5e7841c7f SHA256=2deb18f4711e33c98a7a9229840144b5f96d4fb8adb490971fe1681fc7441b9f here="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)" root="$(git -C "$here" rev-parse --show-toplevel 2>/dev/null || pwd)" source "$here/go-ebiten/common.sh" out="$root/artifacts/build/linefire-${COMMIT:0:7}" tgz="$cache/linefire-${COMMIT:0:7}.tar.gz" fetch "https://github.com/crgimenes/linefire/archive/$COMMIT.tar.gz" "$tgz" "$SHA256" go_setup rm -rf "$out"; mkdir -p "$out/tree" tar -xzf "$tgz" -C "$out/tree" --strip-components 1 cd "$out/tree" export GO_PKG=./cmd/linefire go_build_wasm "$out/linefire.wasm" go_licenses "$out/linefire-licenses.txt" "Linefire" cd "$root" rm -rf "$out/tree" ls -l "$out" shasum -a 256 "$out/linefire.wasm" "$out/wasm_exec.js"