47 lines
1.3 KiB
Bash
Executable File
47 lines
1.3 KiB
Bash
Executable File
#!/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"
|