#!/usr/bin/env bash # need to add your Token for duckdns below token=${DUCKDNS_TOKEN:-} if [ -z "$token" ]; then echo "DUCKDNS_TOKEN not set" exit 1 fi domain="$1" txtvalue="$2" i=1 response=$(curl --retry 5 --silent "https://www.duckdns.org/update?domains=${domain}&token=${token}&txt=${txtvalue}") while [[ "${response}" == *"502 Bad Gateway"* ]] && [ $i -le 5 ]; do echo "Retrying Bad Gateway response (attempt $i of 5)" sleep 5 i=$((i+1)) response=$(curl --retry 5 --silent "https://www.duckdns.org/update?domains=${domain}&token=${token}&txt=${txtvalue}") done if [ "$response" != "OK" ]; then echo "Failed to update TXT record for ${domain} at duckdns.org (is the TOKEN valid?)" echo "Response: $response" exit 1 fi