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).
This commit is contained in:
@@ -0,0 +1,79 @@
|
||||
#!/bin/bash
|
||||
# build.sh - Compila e instala el Radio Player
|
||||
# Ejecutar en el sistema destino (Linux con GTK4 y GStreamer)
|
||||
|
||||
set -e
|
||||
|
||||
echo "========================================"
|
||||
echo " G Radio Player - Script de compilación"
|
||||
echo "========================================"
|
||||
|
||||
# ── Verificar Rust ──
|
||||
if ! command -v cargo &>/dev/null; then
|
||||
echo "[!] Rust no encontrado. Instalando via rustup..."
|
||||
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y
|
||||
source "$HOME/.cargo/env"
|
||||
fi
|
||||
|
||||
echo "[✓] Rust: $(rustc --version)"
|
||||
|
||||
# ── Dependencias del sistema (Ubuntu/Debian) ──
|
||||
echo ""
|
||||
echo "[*] Instalando dependencias del sistema..."
|
||||
sudo apt-get update -q
|
||||
sudo apt-get install -y \
|
||||
pkg-config \
|
||||
libgtk-4-dev \
|
||||
libgstreamer1.0-dev \
|
||||
libgstreamer-plugins-base1.0-dev \
|
||||
libgstreamer-plugins-bad1.0-dev \
|
||||
gstreamer1.0-plugins-good \
|
||||
gstreamer1.0-plugins-bad \
|
||||
gstreamer1.0-plugins-ugly \
|
||||
gstreamer1.0-libav \
|
||||
gstreamer1.0-alsa \
|
||||
gstreamer1.0-pulseaudio \
|
||||
libssl-dev \
|
||||
build-essential
|
||||
|
||||
echo "[✓] Dependencias instaladas"
|
||||
|
||||
# ── Crear directorios de datos si no existen ──
|
||||
echo ""
|
||||
echo "[*] Creando estructura de directorios..."
|
||||
mkdir -p "$HOME/.gradio/data/tmp"
|
||||
mkdir -p "$HOME/G Radio/inicio-espacio-pub"
|
||||
mkdir -p "$HOME/G Radio/fin-espacio-pub"
|
||||
mkdir -p "$HOME/G Radio/comerciales"
|
||||
|
||||
# Crear archivos de configuración por defecto si no existen
|
||||
[ -f "$HOME/.gradio/data/tmp/upvol" ] || echo "80" > "$HOME/.gradio/data/tmp/upvol"
|
||||
[ -f "$HOME/.gradio/data/tmp/downvol" ] || echo "20" > "$HOME/.gradio/data/tmp/downvol"
|
||||
[ -f "$HOME/.gradio/data/mix" ] || echo "3" > "$HOME/.gradio/data/mix"
|
||||
[ -f "$HOME/.gradio/data/tmp/playlist4" ] || touch "$HOME/.gradio/data/tmp/playlist4"
|
||||
[ -f "$HOME/.gradio/data/tmp/comercialeslist4" ] || touch "$HOME/.gradio/data/tmp/comercialeslist4"
|
||||
|
||||
echo "[✓] Directorios y archivos de configuración listos"
|
||||
|
||||
# ── Compilar ──
|
||||
echo ""
|
||||
echo "[*] Compilando en modo release..."
|
||||
cd "$(dirname "$0")"
|
||||
cargo build --release 2>&1
|
||||
|
||||
echo ""
|
||||
echo "[✓] Compilación exitosa: target/release/radio-player"
|
||||
|
||||
# ── Instalar (opcional) ──
|
||||
read -p "[?] ¿Instalar en /usr/local/bin/radio-player? [s/N] " resp
|
||||
if [[ "$resp" =~ ^[sS]$ ]]; then
|
||||
sudo cp target/release/radio-player /usr/local/bin/radio-player
|
||||
sudo chmod +x /usr/local/bin/radio-player
|
||||
echo "[✓] Instalado en /usr/local/bin/radio-player"
|
||||
fi
|
||||
|
||||
echo ""
|
||||
echo "========================================"
|
||||
echo " Para ejecutar: ./target/release/radio-player"
|
||||
echo " O si instalaste: radio-player"
|
||||
echo "========================================"
|
||||
Reference in New Issue
Block a user