#!/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"