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

APP="/opt/md-komputasi/MD_Komputasi_V1.0.0.py"
DATA_HOME="${MDKOMPUTASI_HOME:-$HOME/.local/share/md-komputasi}"
VENV="${MDKOMPUTASI_VENV:-$DATA_HOME/venv}"
PORT="${MDKOMPUTASI_PORT:-8805}"
MARKER="$VENV/.md-komputasi-deps-1.0.0.ok"

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

mkdir -p "$DATA_HOME"

if [[ ! -x "$VENV/bin/python" ]]; then
  echo "[MD Komputasi] Membuat virtual environment: $VENV"
  python3 -m venv "$VENV"
fi

if [[ "${MDKOMPUTASI_SKIP_DEP_INSTALL:-0}" != "1" && ! -f "$MARKER" ]]; then
  echo "[MD Komputasi] Menyiapkan dependensi Python. Tahap pertama dapat memerlukan beberapa menit..."
  "$VENV/bin/python" -m pip install --disable-pip-version-check --upgrade pip setuptools wheel
  "$VENV/bin/python" -m pip install --disable-pip-version-check --prefer-binary \
    streamlit numpy pandas plotly psutil openpyxl XlsxWriter reportlab openmm mdtraj
  # Optional: tidak menggagalkan aplikasi inti bila wheel/paket tidak tersedia.
  "$VENV/bin/python" -m pip install --disable-pip-version-check --prefer-binary \
    pdbfixer openmmforcefields openff-toolkit py3Dmol || true
  touch "$MARKER"
fi

export MDKOMPUTASI_PORT="$PORT"
export MDKOMPUTASI_HOME="$DATA_HOME"

echo "============================================================"
echo " MD Komputasi V1.0.0"
echo " URL : http://localhost:${PORT}"
echo " Data: ${DATA_HOME}"
echo " Hentikan server dengan Ctrl+C"
echo "============================================================"

exec "$VENV/bin/python" "$APP"
