#!/usr/bin/env bash
set -euo pipefail

APP_VERSION="1.0.5"
APP="/opt/qmscreen/QMScreen_V1.0.5.py"
DATA_DIR="${QMSCREEN_HOME:-${XDG_DATA_HOME:-$HOME/.local/share}/qmscreen}"
VENV_DIR="${QMSCREEN_VENV:-$DATA_DIR/venv}"
PY="$VENV_DIR/bin/python"
PORT="${QMSCREEN_PORT:-8501}"
ADDRESS="${QMSCREEN_ADDRESS:-0.0.0.0}"
MARKER="$VENV_DIR/.qmscreen_deps_${APP_VERSION}"

if [ ! -f "$APP" ]; then
  echo "[ERROR] File aplikasi tidak ditemukan: $APP" >&2
  echo "        Coba instal ulang paket qmscreen." >&2
  exit 10
fi

if [ ! -x "$PY" ] || [ ! -f "$MARKER" ]; then
  echo "[QMScreen] Dependency belum siap; menjalankan setup pertama kali..."
  /usr/bin/qmscreen-setup
fi

mkdir -p "$DATA_DIR"
export QMSCREEN_HOME="$DATA_DIR"
export STREAMLIT_BROWSER_GATHER_USAGE_STATS=false
export STREAMLIT_SERVER_HEADLESS=true

cat <<MSG
===============================================================
  QMScreen V${APP_VERSION} - Ubuntu / WSL
===============================================================
  URL lokal : http://localhost:${PORT}
  Bind      : ${ADDRESS}:${PORT}
  Data      : ${DATA_DIR}
  Stop      : Ctrl+C
===============================================================
MSG

exec "$PY" -m streamlit run "$APP" \
  --server.address="$ADDRESS" \
  --server.port="$PORT" \
  --server.headless=true \
  --browser.gatherUsageStats=false
