#!/usr/bin/env bash # 交互式生成 env 文件 # 用法:bash configure-env.sh set -euo pipefail CONF_DIR=/var/container/data/datahub/env SCRIPT_DIR=$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd) REPO_ROOT=$(cd "$SCRIPT_DIR/../../.." && pwd) if [ ! -d "$CONF_DIR" ]; then echo "[!] $CONF_DIR 不存在,请先执行: bash $SCRIPT_DIR/setup-data-dirs.sh" >&2 exit 1 fi # ---------- 1. backend env ---------- BACKEND_ENV="$CONF_DIR/datahub-backend.env" BACKEND_TPL="$REPO_ROOT/deploy/podman/env/datahub-backend.env.example" if [ -f "$BACKEND_ENV" ]; then echo "[=] $BACKEND_ENV 已存在,跳过" else cp "$BACKEND_TPL" "$BACKEND_ENV" chmod 600 "$BACKEND_ENV" echo "[+] 已生成 $BACKEND_ENV(如需调整 TOOLS_HOST 等参数请手动编辑)" fi # ---------- 2. frontend env:交互式询问 API_BASE_URL ---------- FRONTEND_ENV="$CONF_DIR/datahub-frontend.env" CURRENT_VAL="" if [ -f "$FRONTEND_ENV" ]; then CURRENT_VAL=$(grep -E "^API_BASE_URL=" "$FRONTEND_ENV" | sed 's/^API_BASE_URL=//') echo "[=] 当前 $FRONTEND_ENV 中 API_BASE_URL=$CURRENT_VAL" fi DEFAULT_IP=$(hostname -I 2>/dev/null | awk '{print $1}') DEFAULT_URL="http://${DEFAULT_IP:-127.0.0.1}:9501" SUGGEST="${CURRENT_VAL:-$DEFAULT_URL}" echo echo "请输入浏览器访问后端 API 的完整地址。" echo "示例:http://192.168.1.100:9501 或 https://api.example.com" read -rp "API_BASE_URL [$SUGGEST]: " INPUT API_BASE_URL="${INPUT:-$SUGGEST}" if ! [[ "$API_BASE_URL" =~ ^https?:// ]]; then echo "[!] 地址必须以 http:// 或 https:// 开头" >&2 exit 1 fi cat > "$FRONTEND_ENV" <