#!/bin/sh
# Hydra launcher (generated by scripts/package-linux-app.sh — do not edit).
set -eu
LOG_DIR="${XDG_STATE_HOME:-$HOME/.local/state}/hydra/logs"
mkdir -p "$LOG_DIR"
LOG_FILE="$LOG_DIR/Hydra-$(date +%Y%m%d-%H%M%S).log"
exec >>"$LOG_FILE" 2>&1
echo "=== Hydra launch $(date) ==="
RUNTIME_DIR="${XDG_RUNTIME_DIR:-${TMPDIR:-/tmp}}"
SOCKET_PATH="$RUNTIME_DIR/hydra-maestro-$(id -u).sock"
SCRIPT_PATH="$(readlink -f "$0" 2>/dev/null || printf '%s' "$0")"
BIN_DIR="$(CDPATH= cd -- "$(dirname -- "$SCRIPT_PATH")" && pwd)"
AGENT_BIN="$BIN_DIR/hydra-agent"
AGENT_IDENTITY="$BIN_DIR/hydra-agent.release"
if [ ! -x "$AGENT_BIN" ]; then
  echo "Hydra installation is incomplete: $AGENT_BIN is missing or not executable." >&2
  echo "Reinstall the complete Hydra .deb or tarball; do not copy maestro-app by itself." >&2
  exit 1
fi
if [ ! -r "$AGENT_IDENTITY" ]; then
  echo "Hydra installation is incomplete: $AGENT_IDENTITY is missing." >&2
  echo "Reinstall the complete Hydra .deb or tarball." >&2
  exit 1
fi
AGENT_ID_LINE="$(cat "$AGENT_IDENTITY")"
case "$AGENT_ID_LINE" in
  hydra-agent-git=*) EXPECTED_AGENT_GIT="${AGENT_ID_LINE#hydra-agent-git=}" ;;
  *) echo "Hydra installation has an invalid agent release identity." >&2; exit 1 ;;
esac
case "$EXPECTED_AGENT_GIT" in
  ''|*[!0-9a-f]*) echo "Hydra installation has an invalid agent release identity." >&2; exit 1 ;;
esac
if ! AGENT_VERSION="$("$AGENT_BIN" version 2>/dev/null)"; then
  echo "Hydra could not execute its bundled remote-access agent." >&2
  exit 1
fi
case "$AGENT_VERSION" in
  "hydra-agent git=$EXPECTED_AGENT_GIT built="*) ;;
  *)
    echo "Hydra installation mixes binaries from different releases." >&2
    echo "Reinstall the complete Hydra .deb or tarball." >&2
    exit 1
    ;;
esac
export HYDRA_AGENT_BIN="$AGENT_BIN"
# The .deb declares these as hard dependencies. This preflight is for relocatable tarball users, producing
# an actionable error before the WRY-linked GUI is exec'd.
if command -v ldconfig >/dev/null 2>&1 && ! ldconfig -p 2>/dev/null | grep -q 'libwebkit2gtk-4.1'; then
  echo "Hydra requires WebKitGTK 4.1 for its dashboard." >&2
  echo "Debian/Ubuntu: sudo apt install libwebkit2gtk-4.1-0" >&2
  echo "Fedora: sudo dnf install webkit2gtk4.1 gtk3" >&2
  exit 1
fi
exec "$BIN_DIR/maestro-app" launch --top-tab-bar --no-dashboard-panel --new-tab-default-shell --product-startup --title Hydra --socket "$SOCKET_PATH" --daemon "$BIN_DIR/pty-daemon" --keep-daemon "$@"
