diff options
| author | Sam Scholten | 2025-09-11 16:06:10 +1000 |
|---|---|---|
| committer | Sam Scholten | 2025-09-11 16:06:10 +1000 |
| commit | a7115770e9e377689d9996abe32a28e8db87429d (patch) | |
| tree | 27d08eb347a8b38aeb47b7eb51050a85ff4c7876 /update_gotify.sh | |
| download | drestic-a7115770e9e377689d9996abe32a28e8db87429d.tar.gz drestic-a7115770e9e377689d9996abe32a28e8db87429d.zip | |
init
Diffstat (limited to 'update_gotify.sh')
| -rwxr-xr-x | update_gotify.sh | 71 |
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 |
