#!/bin/bash
# cc-status.sh - Check Claude Code status
#
# Usage: ./cc-status.sh [--json]
#
# Returns:
#   - Running status and PID
#   - Recent output
#   - Runtime duration

set -e

SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
source "$SCRIPT_DIR/config.env"

PID_FILE="/tmp/claude-code.pid"
OUTPUT_FILE="/tmp/cc-output.txt"
JSON_OUTPUT="${1:-}"

get_status() {
    local status="stopped"
    local pid=""
    local runtime=""
    local last_output=""

    if [ -f "$PID_FILE" ]; then
        pid=$(cat "$PID_FILE")
        if ps -p "$pid" > /dev/null 2>&1; then
            status="running"
            # Calculate runtime
            start_time=$(ps -o lstart= -p "$pid" 2>/dev/null | xargs -I {} date -d "{}" +%s 2>/dev/null || echo "")
            if [ -n "$start_time" ]; then
                now=$(date +%s)
                elapsed=$((now - start_time))
                mins=$((elapsed / 60))
                secs=$((elapsed % 60))
                runtime="${mins}m ${secs}s"
            fi
        else
            status="stopped"
            rm -f "$PID_FILE"
            pid=""
        fi
    fi

    # Get last output
    if [ -f "$OUTPUT_FILE" ]; then
        last_output=$(tail -10 "$OUTPUT_FILE" 2>/dev/null || echo "No output yet")
    else
        last_output="No output file"
    fi

    if [ "$JSON_OUTPUT" = "--json" ]; then
        # JSON output for scripts
        cat <<EOF
{
    "status": "$status",
    "pid": "$pid",
    "runtime": "$runtime",
    "output_file": "$OUTPUT_FILE",
    "last_lines": $(echo "$last_output" | python3 -c 'import json,sys; print(json.dumps(sys.stdin.read()))' 2>/dev/null || echo '""')
}
EOF
    else
        # Human-readable output
        echo "========================================"
        echo "  CLAUDE CODE STATUS"
        echo "========================================"
        echo ""
        if [ "$status" = "running" ]; then
            echo "Status: 🟢 RUNNING"
            echo "PID: $pid"
            echo "Runtime: $runtime"
        else
            echo "Status: ⚪ STOPPED"
        fi
        echo ""
        echo "Output file: $OUTPUT_FILE"
        echo ""
        echo "--- Recent Output ---"
        echo "$last_output"
        echo "---------------------"
    fi
}

get_status
