#!/bin/bash # Levanta Flintstones en Docker y abre el navegador automáticamente. set -e APP_DIR="releng/flintstones.application.product/target/products/RCP product/linux/gtk/x86_64" IMAGE="flintstones-develop-run" URL="http://localhost:6080/vnc.html?autoconnect=true&resize=scale" # 1. Compilar el proyecto si no existe el binario if [ ! -f "$APP_DIR/eclipse" ]; then echo "==> Proyecto no compilado. Compilando (esto tarda la primera vez)..." docker compose run --rm build fi # 2. Construir la imagen de ejecución si no existe if ! docker image inspect "$IMAGE" > /dev/null 2>&1; then echo "==> Construyendo imagen Docker de ejecución (solo la primera vez)..." docker compose build run fi # 3. Arrancar el contenedor (o reutilizarlo si ya corre) if docker compose ps run | grep -q "running"; then echo "==> Flintstones ya está en marcha." else echo "==> Arrancando Flintstones..." docker compose up -d run fi # 4. Esperar a que noVNC esté listo echo -n "==> Esperando conexión" for i in $(seq 1 30); do if curl -s http://localhost:6080 > /dev/null 2>&1; then echo " lista." break fi echo -n "." sleep 1 done # 5. Abrir el navegador echo "==> Abriendo $URL" open "$URL" echo "" echo " Para parar: docker compose stop run" echo " Para los logs: docker compose logs -f run"