#!/usr/bin/env bash set -euo pipefail # Incremental backup of data files to Google Drive using rclone. # Copies only new/changed files and never deletes remote files. # # Usage: # scripts/ops/netgescon-data-backup-incremental-gdrive.sh \ # --source /var/www/netgescon/storage/app/amministratori \ # --remote gdrive:NetGesconBackups/prod/data-incremental ROOT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")/../.." && pwd)" ENV_FILE="${ENV_FILE:-$ROOT_DIR/docker/.env.multisite}" SOURCE_DIR="" REMOTE_PATH="" load_env_file() { local env_file="$1" local line key value while IFS= read -r line || [[ -n "$line" ]]; do line="${line%$'\r'}" [[ -z "$line" || "$line" =~ ^[[:space:]]*# ]] && continue [[ "$line" != *=* ]] && continue key="${line%%=*}" value="${line#*=}" export "$key=$value" done < "$env_file" } while [[ $# -gt 0 ]]; do case "$1" in --source) SOURCE_DIR="$2" shift 2 ;; --remote) REMOTE_PATH="$2" shift 2 ;; --env-file) ENV_FILE="$2" shift 2 ;; *) echo "Unknown option: $1" echo "Usage: $0 [--source