#!/bin/bash
# GR Processor — lanzador directo (sin instalar)
cd "$(dirname "$0")"

if [ -f "./gr-processor" ]; then
    BINARY="./gr-processor"
elif [ -f "target/release/gr-processor" ]; then
    BINARY="target/release/gr-processor"
else
    echo "[!] Binario no encontrado."
    echo "    Desde el ZIP: ejecuta run.sh dentro de la carpeta extraída."
    echo "    Desde fuente: cargo build --release"
    exit 1
fi

# Verificar compatibilidad de arquitectura
ELF_INTERP=$(readelf -l "$BINARY" 2>/dev/null | grep "interpreter" | grep -oE '/[^ ]+' | tr -d ']')
if [ -n "$ELF_INTERP" ] && [ ! -f "$ELF_INTERP" ]; then
    echo "[!] Binario incompatible con este sistema ($(uname -m))."
    echo "    Usa el ZIP para la arquitectura correcta."
    exit 1
fi

# GApplication impide segunda instancia; matar la anterior si existe
if pgrep -x gr-processor &>/dev/null; then
    echo "==> Cerrando instancia previa..."
    pkill -x gr-processor 2>/dev/null || true
    sleep 0.5
fi

RUST_LOG="${RUST_LOG:-info}" exec "$BINARY" "$@"
