54 lines
1.6 KiB
Bash
Executable File
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"
|