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