#!/bin/bash
# OpenClaw Config Backup Script
# Backup all configurations in ~/openclaw-config to ~/openclaw-config-BAK
# Keeps only 7 days of backups

set -e

BACKUP_DIR="$HOME/openclaw-config-BAK"
CONFIG_DIR="$HOME/openclaw-config"
DATE=$(date +%Y%m%d-%H%M%S)
RETENTION_DAYS=7

echo "=== OpenClaw Config Backup Started at $(date) ==="

# Create backup directory if not exists
mkdir -p "$BACKUP_DIR"

# Create backup filename
BACKUP_FILE="$BACKUP_DIR/openclaw-config-$DATE.tar.gz"

# Compress all config directories (all openclaw-* subdirectories)
echo "Backing up configurations..."
cd "$CONFIG_DIR"
for dir in openclaw-*/; do
  DIR_NAME=${dir%/}
  echo "  - Adding $DIR_NAME"
done
tar -czf "$BACKUP_FILE" openclaw-*/ 2>/dev/null || true

# Get backup size
BACKUP_SIZE=$(du -h "$BACKUP_FILE" | awk '{print $1}')

echo "Backup created: $BACKUP_FILE ($BACKUP_SIZE)"

# Clean up old backups (keep only 7 days)
echo "Cleaning up old backups (retention: $RETENTION_DAYS days)..."
find "$BACKUP_DIR" -name "openclaw-config-*.tar.gz" -mtime +$RETENTION_DAYS -delete

# Count remaining backups
BACKUP_COUNT=$(ls "$BACKUP_DIR"/openclaw-config-*.tar.gz 2>/dev/null | wc -l)
echo "Total backups: $BACKUP_COUNT"

echo "=== Backup Completed ==="
