Update the game name in project.godot, export presets, UI/marquee/title strings, packaging (AppImage/NSIS/desktop/appdata), tools, docs, and the generated prop GLBs. Packaging assets and README screenshots are regenerated. Headless suite 209/209 and Python tooling tests pass.
49 lines
1.9 KiB
Bash
49 lines
1.9 KiB
Bash
#!/usr/bin/env bash
|
|
# Build a self-contained Gig Line AppImage (all game data included).
|
|
#
|
|
# Prereqs: exported Linux binary in build/ (embed_pck=true), curl.
|
|
# Usage: bash packaging/linux/build_appimage.sh [version]
|
|
# Output: build/gig-line-<version>-x86_64.AppImage
|
|
set -euo pipefail
|
|
|
|
HERE="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
|
ROOT="$(cd "$HERE/../.." && pwd)"
|
|
VERSION="${1:-$(sed -n 's/.*config\/version="\([^"]*\)".*/\1/p' "$ROOT/project.godot")}"
|
|
SRC_BIN="$ROOT/build/gig-line-linux-${VERSION}.x86_64"
|
|
|
|
if [[ ! -f "$SRC_BIN" ]]; then
|
|
echo "error: missing $SRC_BIN — run ./tools/build_releases.sh first" >&2
|
|
exit 1
|
|
fi
|
|
|
|
WORK="$(mktemp -d)"
|
|
trap 'rm -rf "$WORK"' EXIT
|
|
APPDIR="$WORK/GigLine.AppDir"
|
|
mkdir -p "$APPDIR/usr/bin"
|
|
cp "$SRC_BIN" "$APPDIR/usr/bin/gig-line"
|
|
# The export embeds the PCK (embed_pck=true), so no extra data files are needed.
|
|
|
|
cp "$HERE/gig-line.desktop" "$APPDIR/gig-line.desktop"
|
|
cp "$HERE/AppRun" "$APPDIR/AppRun"
|
|
chmod +x "$APPDIR/AppRun"
|
|
cp "$HERE/gig-line.png" "$APPDIR/gig-line.png"
|
|
# Desktop entry + metainfo in standard locations (AppStream validation requires
|
|
# the metainfo filename to match the component id, and the .desktop discoverable).
|
|
mkdir -p "$APPDIR/usr/share/applications" "$APPDIR/usr/share/metainfo"
|
|
cp "$HERE/gig-line.desktop" "$APPDIR/usr/share/applications/gig-line.desktop"
|
|
cp "$HERE/gig-line.appdata.xml" "$APPDIR/usr/share/metainfo/net.gigline.game.appdata.xml"
|
|
|
|
TOOL="${APPIMAGE_TOOL:-/tmp/appimagetool-x86_64.AppImage}"
|
|
if [[ ! -f "$TOOL" ]]; then
|
|
echo "==> Downloading appimagetool"
|
|
curl -sL -o "$TOOL" \
|
|
https://github.com/AppImage/appimagetool/releases/download/continuous/appimagetool-x86_64.AppImage
|
|
chmod +x "$TOOL"
|
|
fi
|
|
|
|
OUT="$ROOT/build/gig-line-${VERSION}-x86_64.AppImage"
|
|
echo "==> Building AppImage -> $OUT"
|
|
# Extract-and-run avoids a FUSE dependency on the build host.
|
|
APPIMAGE_EXTRACT_AND_RUN=1 "$TOOL" "$APPDIR" "$OUT"
|
|
echo "AppImage ready: $(ls -la "$OUT" | awk '{print $5}') bytes"
|