#!/usr/bin/env bash
set -euo pipefail
APP_ROOT="/opt/diamond-diskutility"
VENV_DIR="${APP_ROOT}/.venv"
PYTHON_BIN="${VENV_DIR}/bin/python3"

if [[ ! -x "${PYTHON_BIN}" ]]; then
    echo "[ERROR] Virtual environment missing. Run ${APP_ROOT}/install_dependencies.sh." >&2
    exit 1
fi

EXTRA_PYTHONPATH="${APP_ROOT}/src"
if [[ -n "${PYTHONPATH:-}" ]]; then
    EXTRA_PYTHONPATH="${EXTRA_PYTHONPATH}:${PYTHONPATH}"
fi

USER_HOME="${HOME}"
DISPLAY_VALUE="${DISPLAY:-}"
DEFAULT_XAUTHORITY="${XAUTHORITY:-${USER_HOME}/.Xauthority}"

export PYTHONDONTWRITEBYTECODE=1
if command -v pkexec >/dev/null 2>&1; then
    exec pkexec env DISPLAY="${DISPLAY_VALUE}" XAUTHORITY="${DEFAULT_XAUTHORITY}" PYTHONDONTWRITEBYTECODE="1" PYTHONPATH="${EXTRA_PYTHONPATH}" "${PYTHON_BIN}" -m diamond_disk.app "$@"
elif command -v sudo >/dev/null 2>&1; then
    exec sudo env DISPLAY="${DISPLAY_VALUE}" XAUTHORITY="${DEFAULT_XAUTHORITY}" PYTHONDONTWRITEBYTECODE="1" PYTHONPATH="${EXTRA_PYTHONPATH}" "${PYTHON_BIN}" -m diamond_disk.app "$@"
else
    echo "[ERROR] Neither pkexec nor sudo is available to request elevated privileges." >&2
    exit 1
fi
