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

SELF="$(readlink -f "${BASH_SOURCE[0]}")"
ROOT="$(cd "$(dirname "${SELF}")/.." && pwd -P)"
NODE="${ROOT}/runtime/node"
ENTRYPOINT="${ROOT}/AxiOwlDaemonAssets/packages/server/dist/scripts/supervisor-entrypoint.js"

[[ -x "${NODE}" ]] || { echo "AxiOwl daemon: bundled Node runtime is missing" >&2; exit 127; }
[[ -s "${ENTRYPOINT}" ]] || { echo "AxiOwl daemon: entrypoint is missing" >&2; exit 1; }
[[ -n "${HOME:-}" && "${HOME}" == /* ]] || { echo "AxiOwl daemon: HOME must be absolute" >&2; exit 1; }

STATE_BASE="${XDG_STATE_HOME:-${HOME}/.local/state}"
export AXIOWL_HOME="${AXIOWL_DAEMON_HOME:-${STATE_BASE}/axiowl/daemon}"
export AXIOWL_LISTEN="${AXIOWL_DAEMON_LISTEN:-127.0.0.1:6768}"
export AXIOWL_NODE_ENV="production"
export AXIOWL_DESKTOP_MANAGED="1"
export AXIOWL_RELAY_ENABLED="${AXIOWL_DAEMON_RELAY_ENABLED:-false}"
export AXIOWL_SERVICE_PROXY_ENABLED="false"
export AXIOWL_WEB_UI_ENABLED="false"
mkdir -p "${AXIOWL_HOME}"
chmod 0700 "${AXIOWL_HOME}"
cd "${ROOT}/AxiOwlDaemonAssets"
exec "${NODE}" --jitless "${ENTRYPOINT}" "$@"
