#!/bin/bash
# ─── Compila radio-player para Arch Linux y genera el ZIP ────────────────────
# Uso: ./build-arch.sh [version]
#   Si no se indica versión, la lee de Cargo.toml.
# Requisito: Docker corriendo con imagen gradio-builder-arch construida.
#   Primera vez: docker build -f docker/Dockerfile.arch -t gradio-builder-arch docker/
set -e
cd "$(dirname "$0")"

IMAGE="gradio-builder-arch"
VERSION="${1:-$(grep '^version' Cargo.toml | head -1 | sed 's/.*"\(.*\)".*/\1/')}"

# ── Verificar / construir imagen ──────────────────────────────────────────────
if ! docker image inspect "$IMAGE" &>/dev/null; then
    echo "==> Imagen '$IMAGE' no encontrada. Construyendo (solo la primera vez)..."
    docker build -f docker/Dockerfile.arch -t "$IMAGE" docker/
fi

echo "==> Compilando radio-player v${VERSION} para Arch Linux (amd64)..."
echo "    Imagen: $IMAGE"
echo ""

# ── Compilar dentro del contenedor ───────────────────────────────────────────
# Se monta el fuente como /build y el cache de cargo en un volumen persistente.
docker run --rm \
    -v "$(pwd)":/build \
    -v gradio-cargo-cache-arch:/root/.cargo/registry \
    -v gradio-cargo-git-arch:/root/.cargo/git \
    "$IMAGE" \
    bash -c "
        set -e
        cd /build
        echo '--- cargo build --release ---'
        cargo build --release
        echo '--- build OK ---'
    "

echo ""
echo "==> Empaquetando ZIP para Arch Linux..."
./package-zip-arch.sh "$VERSION"

echo ""
echo "  Listo. Binarios en target/release/"
echo "  ZIP en ../GR-player-RC1-v${VERSION}_amd64_arch.zip"
