magicciv/scripts/run/dev.sh
Natalie ad4fb44390 fix(@projects/@magic-civilization): 🐛 update forgejo runner installation logic
Co-Authored-By: Lilith Autocommit <noreply@atlilith.com>
2026-04-17 12:35:54 -07:00

43 lines
1.7 KiB
Bash

#!/usr/bin/env bash
# Dev subcommands: play, editor, guide, screenshot.
#
# Previously this file was 546L conflating lint/format/test/verify/autoplay/
# dev-server into one module. It's now split:
# - lint.sh → cmd_lint, cmd_lint_gd/rust/ts, cmd_typecheck
# - format.sh → cmd_format, cmd_format_gd/rust/ts
# - test.sh → cmd_test, cmd_test_golden, cmd_coverage, cmd_validate
# - verify.sh → cmd_verify + _verify_* helpers
# - autoplay.sh → cmd_autoplay, cmd_autoplay_batch
# This file now only owns actually-"dev" workflows (launching the game/editor/guide).
cmd_play() {
local LOG_FILE="$REPO_ROOT/.project/logs/game_$(date +%Y%m%d_%H%M%S).log"
mkdir -p "$(dirname "$LOG_FILE")"
echo -e "${BLUE}Launching Magic Civilization...${NC}"
echo -e "${BLUE}Log: $LOG_FILE${NC}"
WAYLAND_DISPLAY="${WAYLAND_DISPLAY:-wayland-0}" \
XDG_RUNTIME_DIR="${XDG_RUNTIME_DIR:-/run/user/$(id -u)}" \
$GODOT_BIN --path "$GAME_DIR" --rendering-method gl_compatibility "$@" 2>&1 | tee "$LOG_FILE"
local EXIT_CODE=${PIPESTATUS[0]}
if [ $EXIT_CODE -ne 0 ]; then
echo -e "\n${RED}Game exited with code $EXIT_CODE${NC}"
echo -e "${RED}Crash log: $LOG_FILE${NC}"
tail -20 "$LOG_FILE" | grep -E "SCRIPT ERROR|ERROR:|Crash|FATAL|at:" | head -10
fi
}
cmd_editor() {
echo -e "${BLUE}Opening Godot editor...${NC}"
WAYLAND_DISPLAY="${WAYLAND_DISPLAY:-wayland-0}" \
XDG_RUNTIME_DIR="${XDG_RUNTIME_DIR:-/run/user/$(id -u)}" \
$GODOT_BIN --path "$GAME_DIR" -e --rendering-method gl_compatibility "$@" &
}
cmd_guide() {
echo -e "${BLUE}Starting guide dev server (port 5800)...${NC}"
pnpm --prefix "$GUIDE_DIR" dev
}
cmd_screenshot() {
"$REPO_ROOT/tools/screenshot.sh" "$@"
}