Files
cescobar 2219b3abc0 Commit inicial: G Radio Remoto (gr-client)
Cliente remoto GTK4 para G Radio Player: se conecta al servidor TCP
embebido en radio-player para controlar el reproductor y editar
programación (pautaje, parrilla, botonera, buscador, reportes) desde
otra máquina de la LAN.
2026-08-23 01:15:15 -05:00

88 lines
3.4 KiB
Bash
Executable File

#!/bin/bash
# ─── G Radio Client — instalador ─────────────────────────────────────────────
set -e
cd "$(dirname "$0")"
BIN_DIR="$HOME/.local/bin"
DESKTOP_DIR="$HOME/.local/share/applications"
ICON="gr-client"
# ── 1. Verificar que el binario fue compilado ─────────────────────────────────
if [ ! -f "target/release/gr-client" ]; then
echo "ERROR: target/release/gr-client no encontrado."
echo " Compila el proyecto antes de instalar:"
echo " cargo build --release"
exit 1
fi
# ── 2. Dependencias del sistema ───────────────────────────────────────────────
echo "==> Verificando dependencias..."
if command -v apt &>/dev/null; then
MISSING=()
for pkg in libgtk-4-1 libglib2.0-0 ffmpeg mlocate; do
if ! dpkg -l "$pkg" 2>/dev/null | grep -q "^ii"; then
MISSING+=("$pkg")
fi
done
if [ ${#MISSING[@]} -gt 0 ]; then
echo " Instalando: ${MISSING[*]}"
sudo apt install -y "${MISSING[@]}"
else
echo " Dependencias OK."
fi
elif command -v dnf &>/dev/null; then
sudo dnf install -y gtk4 glib2 ffmpeg mlocate 2>/dev/null || true
else
echo " AVISO: gestor de paquetes no reconocido."
echo " Instala manualmente: gtk4, ffmpeg, mlocate (o plocate)"
fi
# ── 3. Instalar binario ───────────────────────────────────────────────────────
echo "==> Instalando gr-client en $BIN_DIR..."
mkdir -p "$BIN_DIR"
cp target/release/gr-client "$BIN_DIR/gr-client"
chmod +x "$BIN_DIR/gr-client"
# ── 4. Crear directorios de configuración ────────────────────────────────────
echo "==> Preparando directorios de configuración..."
mkdir -p "$HOME/.gradio/data" # para la base de datos de locate (locatedb)
# ── 5. Entrada de menú de escritorio ─────────────────────────────────────────
echo "==> Registrando en el menú de aplicaciones..."
mkdir -p "$DESKTOP_DIR"
cat > "$DESKTOP_DIR/gr-client.desktop" << DESKTOP
[Desktop Entry]
Type=Application
Name=G Radio Client
GenericName=Radio Remote Client
Comment=Cliente remoto para G Radio Player
Exec=$BIN_DIR/gr-client
Icon=$ICON
Categories=AudioVideo;Audio;
Terminal=false
StartupNotify=true
DESKTOP
update-desktop-database "$DESKTOP_DIR" 2>/dev/null || true
# ── 6. Advertir si ~/.local/bin no está en PATH ───────────────────────────────
if [[ ":$PATH:" != *":$HOME/.local/bin:"* ]]; then
echo ""
echo " AVISO: $HOME/.local/bin no está en tu PATH."
echo " Agrega esta línea a tu ~/.bashrc o ~/.zshrc:"
echo ""
echo ' export PATH="$HOME/.local/bin:$PATH"'
echo ""
fi
echo ""
echo "✅ Instalación completa."
echo ""
echo " Ejecutar: gr-client"
echo " O desde menú: busca 'G Radio Client'"
echo ""
echo " Configuración: ~/.gradio/client_config.json"
echo " Índice locate: ~/.gradio/data/locatedb (generado con ⟳ Índice en el buscador)"
echo ""
echo " Para desinstalar: ./uninstall.sh"