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

APP_ROOT="${RUNMOTE_DESKTOP_PACKAGE_ROOT:-/usr/lib/runmote/runmote-desktop}"
RUNTIME_ROOT="$APP_ROOT/private-runtime/runmote-local"
PRIVATE_BIN="$APP_ROOT/private-runtime/bin"
PYTHON_BIN="${PYTHON:-$(command -v python3)}"

desktop_config_home() {
	local base="${XDG_CONFIG_HOME:-$HOME/.config}"
	printf '%s/runmote-desktop\n' "$base"
}

desktop_state_dir() {
	local base="${XDG_STATE_HOME:-$HOME/.local/state}"
	printf '%s/runmote-desktop/runmote\n' "$base"
}

desktop_cache_home() {
	local base="${XDG_CACHE_HOME:-$HOME/.cache}"
	printf '%s/runmote-desktop\n' "$base"
}

export PYTHONNOUSERSITE=1
export PYTHONDONTWRITEBYTECODE=1
export PYTHONPATH="$RUNTIME_ROOT/src:$APP_ROOT/private-runtime/runmote-agent/src:$APP_ROOT/private-runtime/runmote-client/src${PYTHONPATH:+:$PYTHONPATH}"
export PATH="$PRIVATE_BIN:$PATH"
export RUNMOTE_PACKAGE_MODE="${RUNMOTE_PACKAGE_MODE:-production-desktop}"
export RUNMOTE_CLI_PROG="${RUNMOTE_CLI_PROG:-runmote-desktop-runtime}"
export RUNMOTE_PACKAGE_DOC_ROOT="${RUNMOTE_PACKAGE_DOC_ROOT:-/usr/share/doc/runmote-desktop}"
export RUNMOTE_DEFAULT_AGENT_PORT="${RUNMOTE_DEFAULT_AGENT_PORT:-8785}"
export XDG_CONFIG_HOME="${RUNMOTE_DESKTOP_CONFIG_HOME:-$(desktop_config_home)}"
export RUNMOTE_LOCAL_STATE_DIR="${RUNMOTE_DESKTOP_STATE_DIR:-$(desktop_state_dir)}"
export XDG_CACHE_HOME="${RUNMOTE_DESKTOP_CACHE_HOME:-$(desktop_cache_home)}"

exec "$PYTHON_BIN" -m runmote_local "$@"
