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.
This commit is contained in:
Executable
+87
@@ -0,0 +1,87 @@
|
||||
#!/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"
|
||||
Reference in New Issue
Block a user