#!/bin/bash
#
# Helper to run docker exec against the active Eagle instance.
# Reads the active instance from /opt/eagle0/.active-instance (set by deploy-blue-green.sh).
#
# Usage:
#   eagle-exec printenv GEMINI_API_KEY
#   eagle-exec jcmd 1 VM.flags
#   eagle-exec sh    # Get a shell
#
# To create an alias, add to ~/.bashrc:
#   alias eagle-exec='/opt/eagle0/scripts/eagle-exec.sh'
#

set -euo pipefail

APP_DIR="${APP_DIR:-/opt/eagle0}"
ACTIVE_FILE="${APP_DIR}/.active-instance"

# Read active instance from file, with fallback
if [ -f "$ACTIVE_FILE" ]; then
    ACTIVE=$(cat "$ACTIVE_FILE")
else
    # Fallback: check which container is actually running
    if docker inspect --format='{{.State.Running}}' eagle-blue 2>/dev/null | grep -q true; then
        ACTIVE="eagle-blue"
    elif docker inspect --format='{{.State.Running}}' eagle-green 2>/dev/null | grep -q true; then
        ACTIVE="eagle-green"
    else
        ACTIVE=""
    fi
fi

if [ -z "$ACTIVE" ]; then
    echo "Error: No active Eagle instance found" >&2
    exit 1
fi

if [ $# -eq 0 ]; then
    echo "Active instance: $ACTIVE"
    echo "Usage: $0 <command> [args...]"
    echo "Example: $0 printenv GEMINI_API_KEY"
    exit 0
fi

exec docker exec "$ACTIVE" "$@"
