Files
openclaw-backups/scripts/restore-from-gittea.sh

54 lines
1.6 KiB
Bash
Executable File

#!/bin/bash
# Restore OpenClaw from Gitea backup
# Usage: ./restore-from-gitea.sh
set -e
REPO_DIR="$HOME/openclaw-backup"
REPO_URL="http://gitea.kangaroo-eel.ts.net:3000/Anthony/openclaw-backup.git"
STATE_DIR="$HOME/.openclaw"
WORKSPACE_DIR="$HOME/.openclaw/workspace"
echo "=== OpenClaw Restore Script ==="
echo ""
# Clone or update repo
if [ -d "$REPO_DIR" ]; then
echo "Updating existing backup repo..."
cd "$REPO_DIR"
git pull
else
echo "Cloning backup repo..."
git clone "$REPO_URL" "$REPO_DIR"
cd "$REPO_DIR"
fi
# Restore state directory (from openclaw-state/)
if [ -d "$REPO_DIR/openclaw-state" ]; then
echo "Restoring state directory..."
mkdir -p "$STATE_DIR/cron" "$STATE_DIR/devices"
[ -f "$REPO_DIR/openclaw-state/openclaw.json" ] && cp "$REPO_DIR/openclaw-state/openclaw.json" "$STATE_DIR/"
[ -f "$REPO_DIR/openclaw-state/cron/jobs.json" ] && cp "$REPO_DIR/openclaw-state/cron/jobs.json" "$STATE_DIR/cron/"
[ -f "$REPO_DIR/openclaw-state/devices/paired.json" ] && cp "$REPO_DIR/openclaw-state/devices/paired.json" "$STATE_DIR/devices/"
else
echo "Warning: No openclaw-state directory in backup"
fi
# Restore workspace
echo ""
echo "Restoring workspace..."
rsync -av --exclude='.git' "$REPO_DIR/" "$WORKSPACE_DIR/"
# Restore missing skills
echo ""
echo "Checking for missing skills..."
if [ -f "$WORKSPACE_DIR/scripts/skill-tracker.sh" ]; then
"$WORKSPACE_DIR/scripts/skill-tracker.sh" restore
else
echo "Warning: Skill tracker not found - skills may need manual reinstallation"
fi
echo ""
echo "=== Restore Complete ==="
echo "You may need to restart the gateway: openclaw gateway restart"