#!/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"