55 lines
1.9 KiB
Bash
Executable file
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 ==="
|