Compare commits

..

2 Commits

Author SHA1 Message Date
root 3bed4c4bbc always uses @ for subdomain when on root 2026-06-29 12:18:13 +01:00
joeac 2060f8379f configures cache dir, config dir 2026-06-29 11:33:58 +01:00
+17 -10
View File
@@ -14,6 +14,10 @@ fi
SCRIPT="$0" SCRIPT="$0"
SCRIPT_DIR=$(cd "${SCRIPT%/*}" && pwd ) SCRIPT_DIR=$(cd "${SCRIPT%/*}" && pwd )
SCRIPT_NAME=${SCRIPT##*/} SCRIPT_NAME=${SCRIPT##*/}
CACHE_DIR=${CACHE_DIR:-~/.cache/dyndns}
CONFIG_DIR=${CONFIG_DIR:-~/.config/dyndns}
mkdir -p ${CACHE_DIR}
mkdir -p ${CONFIG_DIR}
IP="$($SCRIPT_DIR/get_ip_addr.sh $ip_version)" IP="$($SCRIPT_DIR/get_ip_addr.sh $ip_version)"
if [ -z "$IP" ]; then if [ -z "$IP" ]; then
@@ -21,20 +25,23 @@ if [ -z "$IP" ]; then
exit 1 exit 1
fi fi
DIGITALOCEAN_TOKEN=`cat $SCRIPT_DIR/DIGITALOCEAN_TOKEN` DIGITALOCEAN_TOKEN=`cat ${CONFIG_DIR}/DIGITALOCEAN_TOKEN`
DOMAIN=${2:-`cat $SCRIPT_DIR/DIGITALOCEAN_DOMAIN`} DOMAIN=${2:-`cat ${CONFIG_DIR}/DIGITALOCEAN_DOMAIN`}
SUBDOMAIN=`echo $DOMAIN | sed "s/[^.]\+\.[^.]\+$//g"` SUBDOMAIN=`echo $DOMAIN | sed "s/[^.]\+\.[^.]\+$//g"`
if [ -z "$SUBDOMAIN" ]; then if [ -z "$SUBDOMAIN" ]; then
SUBDOMAIN="@" SUBDOMAIN="@"
ROOT_DOMAIN=$DOMAIN ROOT_DOMAIN=$DOMAIN
elif [ "$SUBDOMAIN" = "@." ]; then
SUBDOMAIN="@"
ROOT_DOMAIN=`echo $DOMAIN | sed "s/^@.//"`
else else
SUBDOMAIN=`echo $SUBDOMAIN | sed "s/\.$//g"` SUBDOMAIN=`echo $SUBDOMAIN | sed "s/\.$//g"`
ROOT_DOMAIN=`echo $DOMAIN | sed "s/^${SUBDOMAIN}\.//g"` ROOT_DOMAIN=`echo $DOMAIN | sed "s/^${SUBDOMAIN}\.//g"`
fi fi
REPEAT_CHECK_DIR=$SCRIPT_DIR REPEAT_CHECK_DIR=${CACHE_DIR}
REPEAT_CHECK_A=$REPEAT_CHECK_DIR/REPEAT_CHECK_${DOMAIN}_A REPEAT_CHECK_A=$REPEAT_CHECK_DIR/REPEAT_CHECK_${SUBDOMAIN}.${ROOT_DOMAIN}_A
REPEAT_CHECK_AAAA=$REPEAT_CHECK_DIR/REPEAT_CHECK_${DOMAIN}_AAAA REPEAT_CHECK_AAAA=$REPEAT_CHECK_DIR/REPEAT_CHECK_${SUBDOMAIN}.${ROOT_DOMAIN}_AAAA
REPEAT_CHECK="$([ $ip_version = 4 ] && echo $REPEAT_CHECK_A || echo $REPEAT_CHECK_AAAA)" REPEAT_CHECK="$([ $ip_version = 4 ] && echo $REPEAT_CHECK_A || echo $REPEAT_CHECK_AAAA)"
get_a_record_ids() { get_a_record_ids() {
@@ -86,7 +93,7 @@ add_aaaa_record() {
} }
delete_record_by_id() { delete_record_by_id() {
echo deleting existing A/AAAA record for $DOMAIN echo deleting existing A/AAAA record for ${SUBDOMAIN}.${ROOT_DOMAIN}
curl -X DELETE \ curl -X DELETE \
-H "Content-Type: application/json" \ -H "Content-Type: application/json" \
-H "Authorization: Bearer $DIGITALOCEAN_TOKEN" \ -H "Authorization: Bearer $DIGITALOCEAN_TOKEN" \
@@ -100,10 +107,10 @@ replace_a_records() {
new_record_id=`add_a_record` new_record_id=`add_a_record`
if [ "$new_record_id" = "null" ] ; then if [ "$new_record_id" = "null" ] ; then
echo unable to add new A record for $DOMAIN with value: $IP echo unable to add new A record for ${SUBDOMAIN}.${ROOT_DOMAIN} with value: $IP
return 1 return 1
fi fi
echo added new A record for $DOMAIN with value: $IP echo added new A record for ${SUBDOMAIN}.${ROOT_DOMAIN} with value: $IP
} }
@@ -114,10 +121,10 @@ replace_aaaa_records() {
new_record_id=`add_aaaa_record` new_record_id=`add_aaaa_record`
if [ "$new_record_id" = "null" ] ; then if [ "$new_record_id" = "null" ] ; then
echo unable to add new AAAA record for $DOMAIN with value: $IP echo unable to add new AAAA record for ${SUBDOMAIN}.${ROOT_DOMAIN} with value: $IP
return 1 return 1
fi fi
echo added new AAAA record for $DOMAIN with value: $IP echo added new AAAA record for ${SUBDOMAIN}.${ROOT_DOMAIN} with value: $IP
} }
replace_records() { replace_records() {