1
0
Fork 0
mirror of https://github.com/tunix/digitalocean-dyndns synced 2024-12-22 04:49:52 +00:00

Merge pull request #19 from ringvold/create-non-existant-record

Create sub domain if it does not exist
This commit is contained in:
Alper Kanat 2021-03-24 01:06:21 +03:00 committed by GitHub
commit a21767ee62
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23

View file

@ -29,7 +29,7 @@ while ( true ); do
for service in ${services[@]}; do for service in ${services[@]}; do
echo "Trying with $service..." echo "Trying with $service..."
ip="$(curl -s $service)" ip="$(curl -s $service | grep '[0-9]\{1,3\}\(\.[0-9]\{1,3\}\)\{3\}')"
test -n "$ip" && break test -n "$ip" && break
done done
@ -45,13 +45,23 @@ while ( true ); do
# re-enable glob expansion # re-enable glob expansion
set +f set +f
data="{\"type\": \"A\", \"name\": \"$sub\", \"data\": \"$ip\"}"
url="$dns_list/$record_id"
test -z $record_id && echo "No record found with '$sub' domain name!" && continue if [[ -z $record_id ]]; then
echo "No record found with '$sub' domain name. Creating record, sending data=$data to url=$url"
new_record=$(curl -s -X POST \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $DIGITALOCEAN_TOKEN" \
-d "$data" \
"$url")
record_data=$(echo $new_record| jq -r ".data")
fi
if [[ "$ip" != "$record_data" ]]; then if [[ "$ip" != "$record_data" ]]; then
data="{\"type\": \"A\", \"name\": \"$sub\", \"data\": \"$ip\"}"
url="$dns_list/$record_id"
echo "existing DNS record address ($record_data) doesn't match current IP ($ip), sending data=$data to url=$url" echo "existing DNS record address ($record_data) doesn't match current IP ($ip), sending data=$data to url=$url"
curl -s -X PUT \ curl -s -X PUT \