#!/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
|