#!/usr/bin/env bash set -euo pipefail INSTANCE_ID="${INSTANCE_ID:?INSTANCE_ID required}" ENV_FILE="${ENV_FILE:?ENV_FILE required}" SERVICE_USER="${SERVICE_USER:-cph-$INSTANCE_ID}" HUB_DIR="${HUB_DIR:-/srv/curriculum-project-hub/current/hub}" [ "$(id -u)" -eq 0 ] || { echo "agent config console must run as root" >&2; exit 1; } [ -r "$ENV_FILE" ] || { echo "environment file is not readable: $ENV_FILE" >&2; exit 1; } [ -f "$HUB_DIR/dist/deployment/agent-config-cli.js" ] || { echo "Agent config CLI missing below $HUB_DIR" >&2; exit 1; } id "$SERVICE_USER" >/dev/null 2>&1 || { echo "service user missing: $SERVICE_USER" >&2; exit 1; } set -a # shellcheck disable=SC1090 . "$ENV_FILE" set +a : "${DATABASE_URL:?DATABASE_URL missing from ENV_FILE}" : "${HUB_SILO_ORGANIZATION_ID:?HUB_SILO_ORGANIZATION_ID missing from ENV_FILE}" exec runuser --user "$SERVICE_USER" -- \ env -i \ DATABASE_URL="$DATABASE_URL" \ HUB_SILO_ORGANIZATION_ID="$HUB_SILO_ORGANIZATION_ID" \ HUB_SKILL_STORE_ROOT="${HUB_SKILL_STORE_ROOT:-/var/lib/cph-hub/$INSTANCE_ID/state/skills}" \ XDG_STATE_HOME="${XDG_STATE_HOME:-/var/lib/cph-hub/$INSTANCE_ID/state}" \ PATH="${PATH:-/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin}" \ node "$HUB_DIR/dist/deployment/agent-config-cli.js" "$@"