#!/bin/sh
# Netrunner VPN — пользовательский лаунчер (Exec в .desktop).
#
# Один клик по иконке → один брендированный запрос пароля (polkit) → приложение
# поднимается с правами root, которые нужны VPN (TUN/nftables/ip/resolvectl).
# Благодаря auth_admin_keep в com.netrunner.vpn.policy пароль спрашивается один
# раз на сессию.
#
# Если уже root (например, из консоли `sudo netrunner-vpn-launch`) — запускаем
# напрямую, без pkexec.

set -eu

REAL_BIN="/usr/bin/netrunner-vpn"
ROOT_HELPER="/usr/lib/netrunner-vpn/nr-root"

if [ "$(id -u)" = "0" ]; then
    exec "$REAL_BIN" "$@"
fi

if ! command -v pkexec >/dev/null 2>&1; then
    echo "Netrunner VPN: требуется pkexec (пакет policykit-1/polkit)." >&2
    echo "Установите его или запустите через: sudo $REAL_BIN" >&2
    exit 1
fi

# Разрешаем процессу root рисовать в наш дисплей (X11/Xwayland). На чистом
# Wayland это безвредный no-op, а nr-root форсит X11-бэкенд для webkit.
if command -v xhost >/dev/null 2>&1; then
    xhost +SI:localuser:root >/dev/null 2>&1 || true
fi

exec pkexec "$ROOT_HELPER" "${DISPLAY:-:0}" "${XAUTHORITY:-}"
