forked from EduCraft/curriculum-project-hub
29 lines
1.3 KiB
Bash
Executable File
29 lines
1.3 KiB
Bash
Executable File
#!/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" "$@"
|