Skip to content
Snippets Groups Projects
Commit 2cf8e6a4 authored by Bob Mottram's avatar Bob Mottram
Browse files

The whole thing can be way less complicated

parent 9a3451cc
No related branches found
No related tags found
No related merge requests found
......@@ -7,7 +7,7 @@
# Freedom in the Cloud
#
# freedns update command for use in cron or a daemon
#
# License
# =======
#
......@@ -33,9 +33,6 @@ export TEXTDOMAINDIR="/usr/share/locale"
VERBOSE=
CONFIGURATION_FILE=/root/${PROJECT_NAME}.cfg
#FREEDNS_WGET='wget --read-timeout=0.0 --waitretry=5 --tries=4 https://freedns.afraid.org/dynamic/update.php?'
FREEDNS_WGET='wget --no-check-certificate -O - https://freedns.afraid.org/dynamic/update.php?'
if [[ "$1" == "--verbose" || "$1" == "-v" ]]; then
VERBOSE=1
......@@ -45,63 +42,17 @@ if [ ! -f "$CONFIGURATION_FILE" ]; then
exit 0
fi
function item_in_array {
local e
for e in "${@:2}"; do [[ "$e" == "$1" ]] && return 0; done
return 1
}
detected_codes=()
detected_codes_ctr=0
codelines=$(grep "_CODE=" "$CONFIGURATION_FILE" | uniq)
while read -r line; do
if [[ "$line" != '#'* ]]; then
code=$(echo "$line" | awk -F '=' '{print $2}')
# shellcheck disable=SC2068
if ! item_in_array "$code" ${detected_codes[@]}; then
detected_codes+=("$code")
detected_codes_ctr=$((detected_codes_ctr+1))
fi
fi
done <<< "$codelines"
if [ $detected_codes_ctr -eq 0 ]; then
exit 0
fi
code=$(grep 'DEFAULT_DOMAIN_CODE' "$CONFIGURATION_FILE" | awk -F '=' '{print $2}')
if [ ! -d "$HOME/.freedns-update" ]; then
mkdir "$HOME/.freedns-update"
if [ $VERBOSE ]; then
echo $"wget --no-check-certificate -O - https://freedns.afraid.org/dynamic/update.php?${code}= >> /tmp/freedns 2>&1 &"
fi
cd "$HOME/.freedns-update" || exit 2467824684
# shellcheck disable=SC2068
for code in ${detected_codes[@]}
do
if [ $VERBOSE ]; then
echo $"command: $FREEDNS_WGET${code}= /tmp/freedns 2>&1 &"
fi
if [ -f /tmp/freedns ]; then
rm /tmp/freedns
fi
# shellcheck disable=SC1066,SC1067,SC1007
$FREEDNS_WGET${code}= >> /tmp/freedns 2>&1 &
if [ $VERBOSE ]; then
if [ -f /tmp/freedns ]; then
cat /tmp/freedns
fi
fi
# if your subdomains are linked on the freedns site
# then we only need to update one entry for them
# all to be changed
# see "Link updates of the same IP together"
break
done
if [ -f /tmp/freedns ]; then
rm /tmp/freedns
fi
# shellcheck disable=SC2086
wget --no-check-certificate -O - https://freedns.afraid.org/dynamic/update.php?${code}= >> /tmp/freedns 2>&1 &
exit 0
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment