diff options
Diffstat (limited to 'common.sh')
| -rw-r--r-- | common.sh | 34 |
1 files changed, 34 insertions, 0 deletions
diff --git a/common.sh b/common.sh new file mode 100644 index 0000000..aae076a --- /dev/null +++ b/common.sh @@ -0,0 +1,34 @@ +#!/bin/bash +# This script is not meant to be executed directly. It should be sourced by other scripts. + +# Single notification function +notify() { + local title="$1" message="$2" priority="${3:-5}" + [ -n "${GOTIFY_URL:-}" ] && [ -n "${GOTIFY_TOKEN:-}" ] || return 0 + curl -sS "$GOTIFY_URL/message?token=$GOTIFY_TOKEN" \ + -F "title=$title" -F "message=$message" -F "priority=$priority" \ + >/dev/null 2>&1 || true +} + +# Pre-warm rclone connection function +pre_warm_connection() { + local script_title="$1" + echo "Pre-warming rclone connection to MEGA..." + local prewarm_success=false + for attempt in 1 2 3; do + echo "Connection attempt $attempt/3..." + if timeout 120 rclone ls backup_remote: >/dev/null 2>&1; then + echo "✓ Connection established on attempt $attempt" + prewarm_success=true + break + else + echo "✗ Attempt $attempt failed" + [ $attempt -lt 3 ] && sleep 30 + fi + done + + if [ "$prewarm_success" = false ]; then + echo "Warning: All pre-warm attempts failed. Operation may be slower or fail." + notify "$script_title ($(whoami)@$(hostname))" "Pre-warm connection failed - operation may have issues" 6 + fi +} |
