#!/usr/bin/env bash # Git clone 后首次初始化(新机器部署入口) set -euo pipefail ROOT="$(cd "$(dirname "$0")/.." && pwd)" cd "$ROOT" [[ -f .env ]] || { cp .env.example .env && echo "已创建 .env"; } [[ -f manifests/feishu.env ]] || { cp manifests/feishu.env.example manifests/feishu.env && echo "已创建 manifests/feishu.env"; } DEFAULT_WS="$(cd "$ROOT/.." && pwd)/workspace" DEFAULT_DATA="$(cd "$ROOT/.." && pwd)/data" if grep -q '^# AS_WORKSPACE_ROOT=' .env && [[ -d "$DEFAULT_WS/DMS" ]]; then sed -i "s|^# AS_WORKSPACE_ROOT=.*|AS_WORKSPACE_ROOT=$DEFAULT_WS|" .env echo "已设置 AS_WORKSPACE_ROOT=$DEFAULT_WS" fi if grep -q '^# AS_DATA_LAKE_HOST=' .env && [[ -d "$DEFAULT_DATA" ]]; then sed -i "s|^# AS_DATA_LAKE_HOST=.*|AS_DATA_LAKE_HOST=$DEFAULT_DATA|" .env echo "已设置 AS_DATA_LAKE_HOST=$DEFAULT_DATA" fi if [[ -n "${AS_WORKSPACE_ROOT:-}" ]] && [[ -d "${AS_WORKSPACE_ROOT}/DMS" || -d "${AS_WORKSPACE_ROOT}/LaneDection" ]]; then echo "检测到 AS_WORKSPACE_ROOT,切换为 workspace 软链…" bash scripts/setup_links.sh else echo "使用仓库内嵌 algorithms/datasets(默认)" echo "若有外部 workspace: 在 .env 设置 AS_WORKSPACE_ROOT 后执行 bash scripts/setup_links.sh" fi if [[ ! -d datasets/adas ]] && [[ -d "$DEFAULT_DATA/送标/adas" ]]; then ln -sfn ../../data/送标/adas datasets/adas echo "已创建 datasets/adas → data/送标/adas" fi if [[ ! -f platform/ui-hsap/dist/index.html ]]; then if command -v npm >/dev/null 2>&1; then echo "构建前端静态包…" bash scripts/build_web.sh else echo "未安装 Node/npm,跳过前端构建;Docker 启动前请执行: bash scripts/build_web.sh" fi fi echo "" echo "下一步:" echo " 1. 编辑 .env — 路径与 AS_FRONTEND_URL / CVAT_PUBLIC_URL(局域网部署必改)" echo " 2. 编辑 manifests/feishu.env — 飞书 App ID/Secret 或保持 AS_DEV_AUTH=true 开发登录" echo " 3. bash scripts/dev_up.sh 或 make up" echo "" echo "详细部署说明: docs/DEPLOY.md"