#!/usr/bin/env bash set -euo pipefail ROOT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")/../.." && pwd)" CONFIG_DIR="$ROOT_DIR/.local-run/nacos/configs" NACOS_ADDR="${NACOS_ADDR:-127.0.0.1:8848}" NAMESPACE_ID="${NACOS_NAMESPACE_ID:-f7a8594e-090c-4830-a3ad-b5c0f9afcc07}" NAMESPACE_NAME="${NACOS_NAMESPACE_NAME:-likei-local}" wait_nacos() { for _ in $(seq 1 60); do if curl -fsS "http://$NACOS_ADDR/nacos/v1/console/health/readiness" >/dev/null 2>&1; then return 0 fi sleep 2 done echo "Nacos 未就绪: $NACOS_ADDR" >&2 return 1 } ensure_namespace() { curl -fsS -X POST "http://$NACOS_ADDR/nacos/v1/console/namespaces" \ --data-urlencode "customNamespaceId=$NAMESPACE_ID" \ --data-urlencode "namespaceName=$NAMESPACE_NAME" >/dev/null 2>&1 || true } publish_config() { local group="$1" local data_id="$2" local file_path="$3" echo "publish $group/$data_id" curl -fsS -X POST "http://$NACOS_ADDR/nacos/v1/cs/configs" \ --data-urlencode "tenant=$NAMESPACE_ID" \ --data-urlencode "group=$group" \ --data-urlencode "dataId=$data_id" \ --data-urlencode "type=yaml" \ --data-urlencode "content@$file_path" >/dev/null } wait_nacos ensure_namespace publish_config "common" "rds-config.yml" "$CONFIG_DIR/common/rds-config.yml" publish_config "common" "redis-config.yml" "$CONFIG_DIR/common/redis-config.yml" publish_config "common" "mongo-config.yml" "$CONFIG_DIR/common/mongo-config.yml" publish_config "common" "framework-config.yml" "$CONFIG_DIR/common/framework-config.yml" publish_config "common" "rocketmq.yml" "$CONFIG_DIR/common/rocketmq.yml" publish_config "common" "external.yml" "$CONFIG_DIR/common/external.yml" publish_config "common" "external-config.yml" "$CONFIG_DIR/common/external-config.yml" publish_config "game-fruit" "application.yml" "$CONFIG_DIR/game-fruit/application.yml" publish_config "rc-service-wallet" "sharding-config.yml" "$CONFIG_DIR/rc-service-wallet/sharding-config.yml" publish_config "rc-service-console" "rc-service-console-local.yml" "$CONFIG_DIR/rc-service-console/rc-service-console-local.yml" echo "Nacos 配置导入完成"