sync-cleo 2026-04-10 12:50
This commit is contained in:
Executable
+60
@@ -0,0 +1,60 @@
|
||||
#!/bin/bash
|
||||
#===============================================
|
||||
# obsidian-vault sync script
|
||||
# All 3 agents run this every 5 minutes
|
||||
#===============================================
|
||||
set -euo pipefail
|
||||
|
||||
AGENT="${1:-horus}"
|
||||
VAULT_DIR="/root/.openclaw/workspace/obsidian-vault"
|
||||
STATE_FILE="$VAULT_DIR/agent-openclaw/vault-state.json"
|
||||
LOG_FILE="$VAULT_DIR/agent-shared/daily/$(date +%Y-%m-%d).md"
|
||||
|
||||
cd "$VAULT_DIR"
|
||||
|
||||
# Update daily log
|
||||
mkdir -p "$VAULT_DIR/agent-shared/daily"
|
||||
if [ ! -f "$LOG_FILE" ]; then
|
||||
cat > "$LOG_FILE" << EOF
|
||||
# Daily Log — $(date +%Y-%m-%d)
|
||||
|
||||
## Agents Active Today
|
||||
- Horus
|
||||
- Amun
|
||||
- Cleo
|
||||
|
||||
## Session Activity
|
||||
|
||||
EOF
|
||||
fi
|
||||
|
||||
# Check if dirty
|
||||
if [ -n "$(git status --porcelain)" ]; then
|
||||
echo "[$AGENT] Vault has changes — committing..."
|
||||
git add -A
|
||||
git commit -m "chore: $AGENT sync $(date -u +%Y-%m-%dT%H:%M:%SZ)"
|
||||
|
||||
# Push if remote exists
|
||||
if git remote get-url origin &>/dev/null; then
|
||||
git pull --rebase origin master 2>/dev/null || true
|
||||
git push origin master 2>/dev/null || echo "[$AGENT] Push failed (offline?)"
|
||||
fi
|
||||
|
||||
# Update vault state
|
||||
python3 -c "
|
||||
import json
|
||||
with open('$STATE_FILE', 'r') as f:
|
||||
s = json.load(f)
|
||||
s['agents']['$AGENT']['last_commit'] = '$(git rev-parse HEAD)'
|
||||
s['agents']['$AGENT']['dirty'] = False
|
||||
s['last_sync'] = '$(date -u +%Y-%m-%dT%H:%M:%SZ)'
|
||||
with open('$STATE_FILE', 'w') as f:
|
||||
json.dump(s, f, indent=2)
|
||||
"
|
||||
echo "[$AGENT] Sync complete"
|
||||
else
|
||||
# Pull latest from others
|
||||
if git remote get-url origin &>/dev/null; then
|
||||
git pull origin master 2>/dev/null && echo "[$AGENT] Pulled latest" || echo "[$AGENT] Pull failed or no remote"
|
||||
fi
|
||||
fi
|
||||
Reference in New Issue
Block a user