Part of #869 Mos (id-11) Gate-16 merge: independent APPROVE @75235ef8 (9/9, no live host mutation), author id2 != approver id11, CI green wp1971. Co-authored-by: jason.woltje <jason@diversecanvas.com> Co-committed-by: jason.woltje <jason@diversecanvas.com>
32 lines
1.2 KiB
Bash
Executable File
32 lines
1.2 KiB
Bash
Executable File
#!/usr/bin/env bash
|
|
# Supervisor entry point for the Mosaic lease broker daemon (issue #869, C3).
|
|
#
|
|
# Resolves the broker socket path with the SAME precedence as
|
|
# `defaultLeaseBrokerSocket` in `packages/mosaic/src/commands/launch.ts`, so a
|
|
# gated runtime launched through that client always finds the socket this
|
|
# supervisor creates:
|
|
# 1. an explicit MOSAIC_LEASE_BROKER_SOCKET
|
|
# 2. "$XDG_RUNTIME_DIR/mosaic-lease/broker.sock"
|
|
# 3. "/run/user/<uid>/mosaic-lease/broker.sock"
|
|
#
|
|
# The state file is colocated next to the socket (same directory,
|
|
# "state.json"), mirroring how the broker already colocates its per-session
|
|
# generation files beside the socket.
|
|
#
|
|
# This script never installs, enables, or starts the systemd unit that calls
|
|
# it; it is only ever invoked BY that unit (or by a human/test harness that
|
|
# passes its own HOME/XDG_RUNTIME_DIR).
|
|
set -euo pipefail
|
|
|
|
SCRIPT_DIR=$(cd -- "$(dirname -- "$0")" && pwd)
|
|
|
|
if [ -n "${MOSAIC_LEASE_BROKER_SOCKET:-}" ]; then
|
|
SOCKET="$MOSAIC_LEASE_BROKER_SOCKET"
|
|
else
|
|
RUNTIME_DIR="${XDG_RUNTIME_DIR:-/run/user/$(id -u)}"
|
|
SOCKET="$RUNTIME_DIR/mosaic-lease/broker.sock"
|
|
fi
|
|
STATE="$(dirname -- "$SOCKET")/state.json"
|
|
|
|
exec python3 "$SCRIPT_DIR/daemon.py" --socket "$SOCKET" --state "$STATE"
|