From 3d66f1d159ca8baaab1fd61120918cbda3ccb5d4 Mon Sep 17 00:00:00 2001 From: Zsolt Tasnadi Date: Wed, 27 May 2026 21:06:34 +0200 Subject: [PATCH] add build.sh --- .gitignore | 1 + build.sh | 72 ++++++++++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 73 insertions(+) create mode 100755 build.sh diff --git a/.gitignore b/.gitignore index fa5f08b..3b55518 100644 --- a/.gitignore +++ b/.gitignore @@ -1,4 +1,5 @@ .claude .local .vscode +dist rabbitroller diff --git a/build.sh b/build.sh new file mode 100755 index 0000000..28cbed7 --- /dev/null +++ b/build.sh @@ -0,0 +1,72 @@ +#!/usr/bin/env bash +# ----------------------------------------------------------------------------- +# build.sh — egy lépésben előállítja a dist/ mappába mindazt, amit a Makefile +# (export + ci-upload) felscp-zne: a HTML/WASM zip-et és a metadata.json-t. +# Magát a feltöltést NEM végzi el. +# +# ./build.sh # verzió a metadata.json-ból (1.0.0) +# ./build.sh 1.2.3 # verzió felülírása argumentummal +# ----------------------------------------------------------------------------- +set -euo pipefail + +cd "$(dirname "$0")" + +PROJECT="rabbitroller" +DIST_DIR="dist" +WASM_NAME="game.wasm" +INDEX_HTML_URL="https://git.teletype.hu/tools/ebitengine-tools/raw/branch/master/web/index.html" + +# --- verzió meghatározása (arg > metadata.json) ----------------------------- +if [ "${1:-}" != "" ]; then + VERSION="$1" +elif command -v jq >/dev/null 2>&1 && [ -f metadata.json ]; then + VERSION="$(jq -r '.version' metadata.json)" +else + echo "ERROR: nincs verzió (adj meg argumentumot, vagy telepíts jq-t a metadata.json olvasásához)" >&2 + exit 1 +fi +echo "==> Verzió: $VERSION" + +ZIP_NAME="$PROJECT-$VERSION.html.zip" +META_DST="$PROJECT-$VERSION.metadata.json" + +rm -rf "$DIST_DIR" +mkdir -p "$DIST_DIR" + +# --- WASM build ------------------------------------------------------------- +echo "==> WASM build ($WASM_NAME)" +GOOS=js GOARCH=wasm go build -o "$DIST_DIR/$WASM_NAME" . + +# --- wasm_exec.js a Go disztribúcióból -------------------------------------- +echo "==> wasm_exec.js másolása" +GOROOT="$(go env GOROOT)" +if [ -f "$GOROOT/lib/wasm/wasm_exec.js" ]; then + cp "$GOROOT/lib/wasm/wasm_exec.js" "$DIST_DIR/wasm_exec.js" +elif [ -f "$GOROOT/misc/wasm/wasm_exec.js" ]; then + cp "$GOROOT/misc/wasm/wasm_exec.js" "$DIST_DIR/wasm_exec.js" +else + echo "ERROR: wasm_exec.js nem található a GOROOT alatt ($GOROOT)" >&2 + exit 1 +fi + +# --- index.html letöltése --------------------------------------------------- +echo "==> index.html letöltése" +curl -sSL "$INDEX_HTML_URL" -o "$DIST_DIR/index.html" + +# --- csomagolás (lapos zip, mint a Makefile -j) ----------------------------- +echo "==> Csomagolás: $DIST_DIR/$ZIP_NAME" +zip -j -r "$DIST_DIR/$ZIP_NAME" \ + "$DIST_DIR/$WASM_NAME" \ + "$DIST_DIR/wasm_exec.js" \ + "$DIST_DIR/index.html" >/dev/null + +# --- metadata.json a feltöltési névvel -------------------------------------- +echo "==> metadata.json -> $DIST_DIR/$META_DST" +cp metadata.json "$DIST_DIR/$META_DST" + +# --- ideiglenes fájlok takarítása (a zip már tartalmazza őket) --------------- +rm -f "$DIST_DIR/$WASM_NAME" "$DIST_DIR/wasm_exec.js" "$DIST_DIR/index.html" + +echo "" +echo "==> Kész. Feltöltésre kész artifactok a(z) $DIST_DIR/ mappában:" +ls -la "$DIST_DIR"