2025-05-03 22:58:39 +12:00

43 lines
1.3 KiB
Bash

#!/bin/bash
source "${AGENT_PATH}/_common.sh"
# Nginx Example Restore Script
# Load service environment variables
source ./service.env
_check_required_env_vars "CONTAINER_NAME" "LOCAL_DATA_FOLDER"
BACKUP_FILE="$1"
if [ -z "$BACKUP_FILE" ]; then
_die "Backup file path not provided"
fi
if [ ! -f "$BACKUP_FILE" ]; then
_die "Backup file $BACKUP_FILE does not exist"
fi
echo "Uninstalling service before restore..."
bash ./uninstall.sh || _die "Failed to uninstall service before restore"
echo "Removing existing data folder ${LOCAL_DATA_FOLDER}..."
# Use root remove in case of permission issues
_root_remove_tree "$LOCAL_DATA_FOLDER"
[ ! -d "$LOCAL_DATA_FOLDER" ] || _die "Failed to delete $LOCAL_DATA_FOLDER"
mkdir -p "$LOCAL_DATA_FOLDER"
[ -d "$LOCAL_DATA_FOLDER" ] || _die "Failed to create $LOCAL_DATA_FOLDER"
chmod 777 "$LOCAL_DATA_FOLDER" # Ensure permissions
echo "Restoring data from ${BACKUP_FILE} to ${LOCAL_DATA_FOLDER}..."
# Assuming backup is a simple tarball of the folder contents
tar -xzf "$BACKUP_FILE" -C "$LOCAL_DATA_FOLDER" --strip-components=1
if [ $? -ne 0 ]; then
_die "Failed to restore data folder from backup"
fi
echo "Restore complete. Reinstalling service..."
bash ./install.sh || _die "Failed to reinstall service after restore"
echo "Service ${CONTAINER_NAME} restored and reinstalled."