#!/usr/bin/env bash set -euo pipefail ROOT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)" ENV_FILE="${ENV_FILE:-$ROOT_DIR/.env}" if [[ -f "$ENV_FILE" ]]; then set -a # shellcheck disable=SC1090 source "$ENV_FILE" set +a fi REALM_ID="${ACORE_REALMLIST_ID:-1}" REALM_NAME="${ACORE_REALMLIST_NAME:-MoonWell}" REALM_PUBLIC_ADDRESS="${ACORE_REALMLIST_PUBLIC_ADDRESS:-127.0.0.1}" REALM_LOCAL_ADDRESS="${ACORE_REALMLIST_LOCAL_ADDRESS:-127.0.0.1}" REALM_LOCAL_SUBNET_MASK="${ACORE_REALMLIST_LOCAL_SUBNET_MASK:-255.255.255.0}" REALM_PORT="${ACORE_REALMLIST_PORT:-${DOCKER_WORLD_EXTERNAL_PORT:-8085}}" usage() { cat <&2 exit 1 fi } sql_quote() { local value="$1" value="${value//\\/\\\\}" value="${value//\'/\\\'}" printf "'%s'" "$value" } if (($# > 0)); then case "$1" in -h|--help) usage exit 0 ;; *) printf 'Unknown option: %s\n\n' "$1" >&2 usage >&2 exit 1 ;; esac fi require_integer "ACORE_REALMLIST_ID" "$REALM_ID" require_integer "ACORE_REALMLIST_PORT" "$REALM_PORT" if [[ -z "$REALM_NAME" || -z "$REALM_PUBLIC_ADDRESS" || -z "$REALM_LOCAL_ADDRESS" || -z "$REALM_LOCAL_SUBNET_MASK" ]]; then printf 'realmlist values must not be empty\n' >&2 exit 1 fi cd "$ROOT_DIR" if ! docker compose ps --status running --services | grep -qx 'ac-database'; then printf 'ac-database is not running. Start the server first with ./start-server.sh\n' >&2 exit 1 fi SQL=$(cat < ${REALM_PUBLIC_ADDRESS}:${REALM_PORT}" docker compose exec -T ac-database bash -lc 'mysql -uroot -p"$MYSQL_ROOT_PASSWORD" acore_auth' <<<"$SQL" if docker compose ps --status running --services | grep -qx 'ac-authserver'; then log "restarting authserver so it reloads realmlist" docker compose restart ac-authserver >/dev/null else log "authserver is not running, skipped restart" fi log "realmlist synced"