Compare commits
2 Commits
d0b389a4e6
..
main
| Author | SHA1 | Date | |
|---|---|---|---|
| 3bed4c4bbc | |||
| 2060f8379f |
@@ -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() {
|
||||||
|
|||||||
Reference in New Issue
Block a user