#!/bin/bash
set -e

echo "[entrypoint] Xvfb 起動中..."
rm -f /tmp/.X99-lock
Xvfb :99 -screen 0 ${SCREEN_WIDTH}x${SCREEN_HEIGHT}x${SCREEN_DEPTH} -ac +extension GLX +render -noreset &
sleep 2

echo "[entrypoint] x11vnc 起動中..."
x11vnc -display :99 -forever -nopw -shared -rfbport ${VNC_PORT} -bg -o /var/log/x11vnc.log
sleep 1

echo "[entrypoint] noVNC 起動中 (port ${NOVNC_PORT})..."
# noVNC ui.jsがpackage.jsonをfetchするが、Debianパッケージ版には含まれないため空JSONを配置
if [ ! -f /usr/share/novnc/package.json ]; then
    echo '{"version":"0.0.0"}' > /usr/share/novnc/package.json
fi
websockify --web /usr/share/novnc ${NOVNC_PORT} localhost:${VNC_PORT} &
sleep 1

echo "[entrypoint] IPAT購入サーバー起動中 (port ${IPAT_PORT})..."
echo "[entrypoint] noVNC: http://localhost:${NOVNC_PORT}/vnc.html"
echo "[entrypoint] API:   http://localhost:${IPAT_PORT}/purchase"
echo "[entrypoint] Health: http://localhost:${IPAT_PORT}/health"

exec python /app/ipat_server.py --bind 0.0.0.0 --port ${IPAT_PORT}
