#!/usr/bin/env bash # Compila o Journey to the Steam Planet (WASM-4, de QuaternionWake, AGPL-3.0) a partir do fonte, no commit # 2c88b26 (o HEAD; a tag jam-version, cdf15aa, so difere no README). O autor nao publicou release, e o # cartucho do wasm4.org nao serve (o arquivo de cartuchos de la e CC BY-NC-SA). O build e o do proprio # build.zig do jogo ("zig build", ReleaseSmall), sem nenhuma mudanca, com o Zig 0.16.0 (a versao estavel # da epoca do commit, julho de 2026; o 0.15 nao aceita o "packed union(u16)" do wasm4.zig). Dois builds # seguidos, em pastas diferentes, dao o mesmo sha256. Por ser AGPL, o site hospeda junto o tarball do # commit e este script. # # src/FredGames.Bundler/Builds/build-journey-to-the-steam-planet.sh # # O Zig fica em artifacts/tools/zig-/ (baixado de ziglang.org se faltar). # # Saida: artifacts/build/journey-to-the-steam-planet/journey-to-the-steam-planet.wasm set -euo pipefail COMMIT=2c88b26230f102d01c9d45dea917a8290bcdf034 SHA256=d987718dd27fc5fb9435070eac86dcda94479d661f639f10a3814e91ffa7df6e CART_SHA256=a94af37a3d685989c6793a3fb67b5d680c8fe21bb8b024a2baa02d15e24fc655 ZIG=0.16.0 ZIG_SHA256=b23d70deaa879b5c2d486ed3316f7eaa53e84acf6fc9cc747de152450d401489 here="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)" root="$(git -C "$here" rev-parse --show-toplevel 2>/dev/null || pwd)" out="$root/artifacts/build/journey-to-the-steam-planet" cache="$root/artifacts/build/cache" tools="$root/artifacts/tools" mkdir -p "$cache" fetch() { [ -f "$cache/$2" ] || curl -fsSL --retry 4 "$1" -o "$cache/$2"; echo "$3 $cache/$2" | shasum -a 256 -c -; } fetch "https://github.com/QuaternionWake/journey-to-the-steam-planet/archive/$COMMIT.tar.gz" \ "journey-to-the-steam-planet-${COMMIT:0:7}.tar.gz" "$SHA256" if [ ! -x "$tools/zig-$ZIG/zig" ]; then fetch "https://ziglang.org/download/$ZIG/zig-aarch64-macos-$ZIG.tar.xz" "zig-aarch64-macos-$ZIG.tar.xz" "$ZIG_SHA256" tar -xJf "$cache/zig-aarch64-macos-$ZIG.tar.xz" -C "$tools" mv "$tools/zig-aarch64-macos-$ZIG" "$tools/zig-$ZIG" fi rm -rf "$out" mkdir -p "$out/tree" tar -xzf "$cache/journey-to-the-steam-planet-${COMMIT:0:7}.tar.gz" -C "$out/tree" --strip-components 1 (cd "$out/tree" && "$tools/zig-$ZIG/zig" build --global-cache-dir "$out/zig-global-cache") cp "$out/tree/zig-out/bin/cart.wasm" "$out/journey-to-the-steam-planet.wasm" rm -rf "$out/tree" "$out/zig-global-cache" echo "$CART_SHA256 $out/journey-to-the-steam-planet.wasm" | shasum -a 256 -c -