summaryrefslogtreecommitdiff
path: root/update_gotify.sh
diff options
context:
space:
mode:
Diffstat (limited to 'update_gotify.sh')
-rwxr-xr-xupdate_gotify.sh71
1 files changed, 71 insertions, 0 deletions
diff --git a/update_gotify.sh b/update_gotify.sh
new file mode 100755
index 0000000..5305752
--- /dev/null
+++ b/update_gotify.sh
@@ -0,0 +1,71 @@
+#!/bin/bash
+set -euo pipefail
+
+ENV_FILE="$1"
+
+if [ ! -f "$ENV_FILE" ]; then
+ echo "Error: Environment file not found: $ENV_FILE"
+ exit 1
+fi
+
+echo "Current Gotify configuration:"
+grep -E "^GOTIFY_(URL|TOKEN)=" "$ENV_FILE" || echo "No Gotify configuration found"
+echo
+
+read -rp "Enter new Gotify URL (no trailing slash, e.g. https://gotify.example.com): " GOTIFY_URL
+if [ -n "$GOTIFY_URL" ]; then
+ # Validate URL format
+ if [[ ! "$GOTIFY_URL" =~ ^https?:// ]]; then
+ echo "Error: Invalid URL format (must start with http:// or https://)"
+ exit 1
+ fi
+
+ # Test URL reachability
+ echo "Testing Gotify server connectivity..."
+ if ! curl -s --connect-timeout 10 "$GOTIFY_URL/health" >/dev/null 2>&1; then
+ echo "Warning: Cannot reach Gotify server at $GOTIFY_URL"
+ echo "This might be due to network issues or incorrect URL."
+ read -rp "Continue anyway? [y/N]: " continue_anyway
+ if [[ ! "$continue_anyway" =~ ^[Yy]$ ]]; then
+ echo "Aborted."
+ exit 1
+ fi
+ else
+ echo "✓ Gotify server is reachable"
+ fi
+
+ read -rp "Enter new Gotify token: " GOTIFY_TOKEN
+
+ # Test token if both URL and token are provided
+ if [ -n "$GOTIFY_TOKEN" ]; then
+ echo "Testing Gotify token..."
+ if curl -sS "$GOTIFY_URL/message?token=$GOTIFY_TOKEN" \
+ -F "title=DRestic Config Test ($(whoami)@$(hostname))" \
+ -F "message=Testing Gotify configuration from $(whoami)@$(hostname) - you can ignore this message" \
+ -F "priority=1" >/dev/null 2>&1; then
+ echo "✓ Test notification sent successfully!"
+ else
+ echo "Warning: Failed to send test notification. Please verify your token."
+ read -rp "Continue anyway? [y/N]: " continue_anyway
+ if [[ ! "$continue_anyway" =~ ^[Yy]$ ]]; then
+ echo "Aborted."
+ exit 1
+ fi
+ fi
+ fi
+else
+ GOTIFY_TOKEN=""
+fi
+
+# Update or add Gotify settings
+sed -i '/^GOTIFY_URL=/d' "$ENV_FILE"
+sed -i '/^GOTIFY_TOKEN=/d' "$ENV_FILE"
+echo "GOTIFY_URL=\"$GOTIFY_URL\"" >> "$ENV_FILE"
+echo "GOTIFY_TOKEN=\"$GOTIFY_TOKEN\"" >> "$ENV_FILE"
+
+echo "✓ Gotify configuration updated!"
+if [ -n "$GOTIFY_URL" ]; then
+ echo "Test with: make test-remote-gotify"
+else
+ echo "Gotify notifications disabled"
+fi