magicciv/tools/screenshot.sh
Claude Code db7dea5e8a chore(tools): 🔧 Update screenshot.sh script with improved automation options and error handling
Co-Authored-By: Lilith Autocommit <noreply@atlilith.com>
2026-03-31 22:48:48 -07:00

55 lines
1.9 KiB
Bash
Executable file

#!/usr/bin/env bash
# Screenshot capture + SCP to plum pipeline
# Usage: ./tools/screenshot.sh [name] [scene] [delay]
# name: screenshot filename (default: "screenshot")
# scene: "main_menu" | "game_setup" (default: "main_menu")
# delay: seconds to wait before capture (default: 4)
set -uo pipefail
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
PROJECT_DIR="$(dirname "$SCRIPT_DIR")"
GODOT_USERDATA="$HOME/.var/app/org.godotengine.Godot/data/godot/app_userdata/Magic Civilization/screenshots"
PLUM_DESKTOP="plum:~/Desktop"
NAME="${1:-screenshot}"
SCENE="${2:-main_menu}"
DELAY="${3:-4}"
cd "$PROJECT_DIR"
echo "=== Magic Civilization Screenshot ==="
echo "Name: $NAME | Scene: $SCENE | Delay: ${DELAY}s"
WAYLAND_DISPLAY="${WAYLAND_DISPLAY:-wayland-0}" \
XDG_RUNTIME_DIR="${XDG_RUNTIME_DIR:-/run/user/$(id -u)}" \
timeout 60 flatpak run --user \
--env=SCREENSHOT_DELAY="$DELAY" \
--env=SCREENSHOT_NAME="$NAME" \
--env=SCREENSHOT_SCENE="$SCENE" \
--env=SCREENSHOT_ZOOM_TO="${SCREENSHOT_ZOOM_TO:-}" \
--env=SCREENSHOT_OVERLAY="${SCREENSHOT_OVERLAY:-}" \
--env=FORCE_DISABLE_FOGOFWAR="true" \
org.godotengine.Godot \
--path "$PROJECT_DIR/src/game" \
--rendering-method gl_compatibility \
--fixed-fps 10 2>&1 | tee /tmp/godot_screenshot_log.txt || true
SCREENSHOT_PATH=$(ls -t "$GODOT_USERDATA"/${NAME}_*.png 2>/dev/null | head -1)
if [ -z "$SCREENSHOT_PATH" ] || [ ! -f "$SCREENSHOT_PATH" ]; then
echo "ERROR: No screenshot found in $GODOT_USERDATA"
grep -E "Screenshot|ERROR|SCRIPT" /tmp/godot_screenshot_log.txt | head -10
exit 1
fi
echo "Captured: $SCREENSHOT_PATH ($(du -h "$SCREENSHOT_PATH" | cut -f1))"
if ssh -o ConnectTimeout=3 plum "echo ok" >/dev/null 2>&1; then
scp "$SCREENSHOT_PATH" "$PLUM_DESKTOP/magic_civ_${NAME}.png" && \
echo "Sent to plum: ~/Desktop/magic_civ_${NAME}.png"
else
echo "WARNING: plum not reachable, screenshot at: $SCREENSHOT_PATH"
fi
echo "=== Done ==="