| 12345678910111213141516171819202122232425262728 |
- #!/usr/bin/env bash
- # dispatch.sh — multi-branch 标准派发器
- # 用法: dispatch.sh <项目目录> <任务书路径> [模型] [DONE标记]
- # 职责: ack 记录 → 后台 spawn 执行层 → 状态可查
- set -euo pipefail
- PROJECT_DIR="${1:?用法: dispatch.sh <项目目录> <任务书路径> [模型] [DONE标记]}"
- BRIEF="${2:?缺任务书路径}"
- MODEL="${3:-deepseek-v4-flash}"
- DONE_TAG="${4:-DONE}"
- TS=$(date +%Y%m%d-%H%M%S)
- LOG="/tmp/mb-${TS}.log"
- cd "$PROJECT_DIR"
- echo "[ack] $(date '+%F %T') 任务书=$BRIEF 执行层=claude 模型=$MODEL" >> /tmp/mb-status.log
- export ANTHROPIC_BASE_URL="${ANTHROPIC_BASE_URL:-https://api.fmode.cn}"
- export ANTHROPIC_AUTH_TOKEN="${ANTHROPIC_AUTH_TOKEN:-$FMODE_API_KEY}"
- /opt/data/npm-global/bin/claude -p "$(cat "$BRIEF")" --model "$MODEL" --dangerously-skip-permissions 2>&1 | tee "$LOG" | tail -3
- if grep -q "$DONE_TAG" "$LOG"; then
- echo "[done] $(date '+%F %T') $BRIEF" >> /tmp/mb-status.log
- exit 0
- else
- echo "[failed] $(date '+%F %T') $BRIEF (无DONE标记, 需续跑: 加'先检查现状续做勿重复'重派)" >> /tmp/mb-status.log
- exit 1
- fi
|