diff --git a/cloudflare-template.sh b/cloudflare-template.sh index f0f1e59..da027ac 100644 --- a/cloudflare-template.sh +++ b/cloudflare-template.sh @@ -1,13 +1,40 @@ #!/bin/bash +set -u -auth_email="" # The email used to login 'https://dash.cloudflare.com' -auth_method="token" # Set to "global" for Global API Key or "token" for Scoped API Token -auth_key="" # Your API Token or Global API Key -zone_identifier="" # Can be found in the "Overview" tab of your domain -record_name="" # Which record you want to be synced -proxy=false # Set the proxy to true or false - +auth_email="${DDNS_AUTH_EMAIL:-}" # The email used to login 'https://dash.cloudflare.com' +auth_method="${DDNS_AUTH_METHOD:-token}" # Set to "global" for Global API Key or "token" for Scoped API Token +auth_key="${DDNS_AUTH_KEY:-}" # Your API Token or Global API Key +zone_identifier="${DDNS_ZONE_IDENTIFIER:-}" # Can be found in the "Overview" tab of your domain +record_name="${DDNS_RECORD_NAME:-}" # Which record you want to be synced +proxy="${DDNS_PROXY:-false}" # Set the proxy to true or false +########################################### +## Validate variables have been set +########################################### +if [ -z "${auth_email}" ]; then + logger "DDNS Updater: DDNS_AUTH_EMAIL was unset" + exit 1 +fi +if [ -z "${auth_method}" ]; then + logger "DDNS Updater: DDNS_AUTH_METHOD was unset" + exit 1 +fi +if [ -z "${auth_key}" ]; then + logger "DDNS Updater: DDNS_AUTH_KEY was unset" + exit 1 +fi +if [ -z "${zone_identifier}" ]; then + logger "DDNS Updater: DDNS_ZONE_IDENTIFIER was unset" + exit 1 +fi +if [ -z "${record_name}" ]; then + logger "DDNS Updater: DDNS_RECORD_NAME was unset" + exit 1 +fi +if [ -z "${proxy}" ]; then + logger "DDNS Updater: DDNS_PROXY was unset" + exit 1 +fi ########################################### ## Check if we have a public IP @@ -48,7 +75,7 @@ fi ########################################### old_ip=$(echo "$record" | grep -Po '(?<="content":")[^"]*' | head -1) # Compare if they're the same -if [[ $ip == $old_ip ]]; then +if [[ $ip == "${old_ip}" ]]; then logger "DDNS Updater: IP ($ip) for ${record_name} has not changed." exit 0 fi