#!/usr/bin/env bash # 将 lake/lake_example 样例批次复制到数据湖 inbox,供接手人走通送标流程 set -euo pipefail ROOT="$(cd "$(dirname "$0")/.." && pwd)" cd "$ROOT" SRC="$ROOT/lake/lake_example/datasets" if [[ ! -d "$SRC/dms/inbox" ]]; then echo "未找到 $SRC,请确认已 git clone 完整仓库" exit 1 fi # 数据湖根目录(与 docker-compose AS_DATA_LAKE_HOST 一致) DATA_LAKE="$(cd "$ROOT/.." && pwd)/data" if [[ -f .env ]]; then val="$(grep -E '^AS_DATA_LAKE_HOST=' .env 2>/dev/null | head -1 | cut -d= -f2- | tr -d '"' || true)" [[ -n "$val" ]] && DATA_LAKE="$val" fi ADAS_LAKE="$DATA_LAKE/送标/adas" mkdir -p "$ADAS_LAKE/inbox" "$ROOT/datasets/dms/inbox" "$ROOT/datasets/lane/inbox" # ADAS 走数据湖挂载;DMS/Lane 在仓库 datasets/ 下 if [[ ! -e "$ROOT/datasets/adas" ]]; then ln -sfn ../../data/送标/adas "$ROOT/datasets/adas" echo "已创建 datasets/adas → data/送标/adas" elif [[ -L "$ROOT/datasets/adas" ]]; then echo "datasets/adas 软链已存在" else echo "警告: datasets/adas 已存在且非软链,ADAS 样例将写入该目录" fi RSYNC=(rsync -rlpt --no-owner --no-group --ignore-existing) echo "数据湖根: $DATA_LAKE" echo "复制 lake_example → inbox(不覆盖已有批次)…" echo "" "${RSYNC[@]}" "$SRC/dms/inbox/" "$ROOT/datasets/dms/inbox/" "${RSYNC[@]}" "$SRC/lane/inbox/" "$ROOT/datasets/lane/inbox/" mkdir -p "$ADAS_LAKE/inbox" "${RSYNC[@]}" "$SRC/adas/inbox/" "$ADAS_LAKE/inbox/" echo "" echo "样例批次已就位。manifest: lake/lake_example/datasets/manifest.yaml" echo "" echo "平台启动后走通流程:" echo " 1. 登录 http://127.0.0.1:8787 (AS_DEV_AUTH=true 开发登录)" echo " 2. 批次台账 → 扫描数据湖 → 勾选样例 → 登记到台账" echo " 3. 送标工作台 → 选择批次 → 开标" echo " 4. 标注进度 → 分配任务 → 标注员「我的标注」进入 CVAT" echo "" echo "推荐先试: adas/det_7cls/20260616_adas2d_pilot 或 adas/cuboid_7cls/20260616_3d_pilot"