#!/usr/bin/env bash
set -euo pipefail
APP="/opt/reactionqm/ReactionQM_V1.0.2.py"
DATA="${REACTIONQM_HOME:-$HOME/.local/share/reactionqm}"
VENV="$DATA/venv"

case "${1:-}" in
  -h|--help)
    cat <<'HELP'
ReactionQM V1.0.2
Usage: reactionqm
Environment variables:
  REACTIONQM_PORT=8803         Streamlit port (default 8803)
  REACTIONQM_HOME=PATH         User-writable data directory
  REACTIONQM_NO_AUTO_PIP=1     Disable Python auto-install inside the app
Browser: http://localhost:${REACTIONQM_PORT:-8803}
HELP
    exit 0
    ;;
  --version)
    echo "ReactionQM 1.0.2"
    exit 0
    ;;
esac

if [ ! -f "$APP" ]; then
  echo "[ReactionQM] ERROR: file aplikasi tidak ditemukan: $APP" >&2
  exit 1
fi

mkdir -p "$DATA"
if [ ! -x "$VENV/bin/python" ]; then
  echo "[ReactionQM] Membuat virtualenv user: $VENV"
  python3 -m venv "$VENV"
fi
PY="$VENV/bin/python"
PIP="$VENV/bin/pip"

if ! "$PY" -c 'import streamlit, numpy, pandas, scipy, rdkit, plotly, psutil' >/dev/null 2>&1; then
  echo "[ReactionQM] Memasang dependensi inti pada start pertama..."
  "$PY" -m pip install --disable-pip-version-check --upgrade pip setuptools wheel
  "$PIP" install --disable-pip-version-check --prefer-binary \
    streamlit numpy pandas scipy rdkit plotly psutil openpyxl XlsxWriter reportlab Pillow
fi

exec "$PY" "$APP"
