Files
G-Radio-Player/build-arch.sh
T
cescobar 03084e2d5a Commit inicial: G Radio Player
Sistema de automatización de radio en Rust (GTK4 + GStreamer): reproductor
principal con crossfade y ducking, scheduler de comerciales, refill de
playlist, y herramientas auxiliares (pautaje, parrilla, botonera, visor,
buscador, playlist, grabador, reportes). Incluye sistema de skins y modos
de Players (paneles de reproducción configurables).
2026-08-23 00:57:40 -05:00

45 lines
1.7 KiB
Bash
Executable File

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