69 lines
2.3 KiB
Bash
Executable File
69 lines
2.3 KiB
Bash
Executable File
#!/bin/bash
|
|
|
|
# BMAD Agent Backup Automation Script
|
|
# Usage: ./backup-agents.sh [quick|full]
|
|
|
|
set -e
|
|
|
|
BMAD_ROOT="/Users/hbl/Documents/BMAD-METHOD"
|
|
BACKUP_ROOT="/Users/hbl/Documents/BMAD-AGENT-BACKUPS"
|
|
ICLOUD_DIR="$HOME/Library/Mobile Documents/com~apple~CloudDocs/BMAD-Agents"
|
|
BACKUP_DATE=$(date +%Y-%m-%d_%H-%M-%S)
|
|
|
|
echo "🔧 BMAD Agent Backup System"
|
|
echo "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━"
|
|
|
|
# Tier 1: Git Commit
|
|
echo "📦 Tier 1: Creating git commit..."
|
|
cd "$BMAD_ROOT"
|
|
git add bmad/*/agents/ bmad/_cfg/agent-manifest.csv bmad/core/preservation/
|
|
if git diff --cached --quiet; then
|
|
echo "✓ No changes to commit"
|
|
else
|
|
git commit -m "Agent backup: $BACKUP_DATE"
|
|
echo "✅ Git commit created"
|
|
fi
|
|
|
|
# Tier 2: Local Archive
|
|
if [ "$1" == "full" ]; then
|
|
echo "📦 Tier 2: Creating local archive..."
|
|
mkdir -p "$BACKUP_ROOT/$BACKUP_DATE"
|
|
|
|
cp -r "$BMAD_ROOT/bmad/core/agents" "$BACKUP_ROOT/$BACKUP_DATE/core-agents"
|
|
cp -r "$BMAD_ROOT/bmad/bmm/agents" "$BACKUP_ROOT/$BACKUP_DATE/bmm-agents"
|
|
cp -r "$BMAD_ROOT/bmad/cis/agents" "$BACKUP_ROOT/$BACKUP_DATE/cis-agents"
|
|
cp "$BMAD_ROOT/bmad/_cfg/agent-manifest.csv" "$BACKUP_ROOT/$BACKUP_DATE/"
|
|
|
|
cd "$BACKUP_ROOT"
|
|
tar -czf "bmad-agents-$BACKUP_DATE.tar.gz" "$BACKUP_DATE"
|
|
rm -rf "$BACKUP_DATE"
|
|
|
|
echo "✅ Archive created: bmad-agents-$BACKUP_DATE.tar.gz"
|
|
|
|
# Keep only last 30 backups
|
|
ls -t bmad-agents-*.tar.gz 2>/dev/null | tail -n +31 | xargs rm -f 2>/dev/null || true
|
|
echo "✓ Cleanup: Kept last 30 backups"
|
|
fi
|
|
|
|
# Tier 3: iCloud Sync
|
|
echo "📦 Tier 3: Syncing to iCloud..."
|
|
mkdir -p "$ICLOUD_DIR"
|
|
rsync -av --delete \
|
|
"$BMAD_ROOT/bmad/" \
|
|
"$ICLOUD_DIR/" \
|
|
--exclude=".DS_Store" \
|
|
--exclude="node_modules" 2>&1 | grep -v "^sending\|^sent\|^total"
|
|
echo "✅ Synced to iCloud"
|
|
|
|
echo "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━"
|
|
echo "✅ Backup Complete!"
|
|
echo ""
|
|
echo "📊 Backup Locations:"
|
|
echo " - Git: $BMAD_ROOT/.git"
|
|
if [ "$1" == "full" ]; then
|
|
echo " - Archive: $BACKUP_ROOT/bmad-agents-$BACKUP_DATE.tar.gz"
|
|
fi
|
|
echo " - iCloud: $ICLOUD_DIR"
|
|
echo ""
|
|
echo "📋 Agent Count: $(wc -l < "$BMAD_ROOT/bmad/_cfg/agent-manifest.csv") agents backed up"
|