summaryrefslogtreecommitdiff
path: root/set_digitalocean_dns_a_record.bash
diff options
context:
space:
mode:
authorDave Compton <davecompton7@gmail.com>2024-08-08 17:12:48 -0700
committerDave Compton <davecompton7@gmail.com>2024-08-08 17:12:48 -0700
commitf65df2752535a26b6b99afabca3b77aef6659c4a (patch)
tree6d0f2280ebccf2af9487dc60766fe2907201aa30 /set_digitalocean_dns_a_record.bash
added working version of scripts
Diffstat (limited to 'set_digitalocean_dns_a_record.bash')
-rwxr-xr-xset_digitalocean_dns_a_record.bash47
1 files changed, 47 insertions, 0 deletions
diff --git a/set_digitalocean_dns_a_record.bash b/set_digitalocean_dns_a_record.bash
new file mode 100755
index 0000000..f795894
--- /dev/null
+++ b/set_digitalocean_dns_a_record.bash
@@ -0,0 +1,47 @@
+#! /bin/bash
+SCRIPT="${BASH_SOURCE[0]}"
+SCRIPT_DIR=${SCRIPT%/*}
+
+DIGITALOCEAN_DOMAIN=$1
+IP=$2
+
+DIGITALOCEAN_TOKEN=`cat $SCRIPT_DIR/DO_TOKEN`
+
+get_a_record_ids() {
+ curl -X GET \
+ -H "Content-Type: application/json" \
+ -H "Authorization: Bearer $DIGITALOCEAN_TOKEN" \
+ "https://api.digitalocean.com/v2/domains/$DIGITALOCEAN_DOMAIN/records" 2> /dev/null | jq '.domain_records | map(select(.type == "A" and .name == "@")) | map(.id) | .[]'
+}
+
+add_a_record() {
+ echo adding new A record for $DIGITALOCEAN_DOMAIN with value : $IP
+ curl -X POST \
+ -H "Content-Type: application/json" \
+ -H "Authorization: Bearer $DIGITALOCEAN_TOKEN" \
+ -d "{\"type\":\"A\" \
+ ,\"name\":\"@\" \
+ ,\"data\":\"$IP\" \
+ ,\"priority\":null \
+ ,\"port\":null \
+ ,\"ttl\":1800 \
+ ,\"weight\":null \
+ ,\"flags\":null \
+ ,\"tag\":null \
+ }" \
+ "https://api.digitalocean.com/v2/domains/$DIGITALOCEAN_DOMAIN/records" > /dev/null 2>&1
+}
+
+delete_record_by_id() {
+ echo deleting existing A record for $DIGITALOCEAN_DOMAIN
+ curl -X DELETE \
+ -H "Content-Type: application/json" \
+ -H "Authorization: Bearer $DIGITALOCEAN_TOKEN" \
+ "https://api.digitalocean.com/v2/domains/$DIGITALOCEAN_DOMAIN/records/$1" > /dev/null 2>&1
+}
+
+for s in `get_a_record_ids`; do
+ delete_record_by_id $s
+done
+
+add_a_record