#!/bin/bash # 自动同步脚本 - 供cron定时调用 # 作用:自动git pull获取新任务,自动git push推送完成结果 # 使用方法:*/5 * * * * /path/to/management/workflow/scripts/auto_sync.sh your-agent-name >> auto_sync.log 2>&1 AGENT_NAME="$1" if [ -z "$AGENT_NAME" ]; then echo "❌ 错误:请提供Agent名称" echo "用法: $0 " exit 1 fi # 自动检测项目根目录 SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)" PROJECT_ROOT="$(dirname "$(dirname "$SCRIPT_DIR")")/../.." cd "$PROJECT_ROOT" || { echo "[$(date)] ❌ 无法进入项目目录: $PROJECT_ROOT" exit 1 } echo "[$(date)] 🔄 开始自动同步 - $AGENT_NAME" # 1. 拉取最新代码获取新任务 echo "[$(date)] ⬇️ git pull..." git pull origin main # 2. 检查是否有.done文件未提交 DONE_FILES=$(find "management/agents/$AGENT_NAME" -name "*.done" -type f 2>/dev/null) UNCOMMITTED=$(git status --porcelain | grep "management/agents/$AGENT_NAME.*\.done" || true) if [ -n "$UNCOMMITTED" ]; then echo "[$(date)] 📤 发现未提交的完成结果,正在推送..." git add "management/agents/$AGENT_NAME" git commit -m "auto: $AGENT_NAME 完成任务自动推送" git push origin main echo "[$(date)] ✅ 推送完成" else echo "[$(date)] ✅ 没有需要推送的完成结果" fi echo "[$(date)] ✅ 自动同步完成"