Cleaned up code to remove unused variables and quote where needed

This commit is contained in:
Asif Bacchus 2018-09-26 00:35:33 -06:00
parent 07820587d8
commit 3fd8a66257

View File

@ -5,7 +5,7 @@
function scriptHelp {
echo -e "\e[1;39mUsage:"
echo -e "\e[1;36m$(basename ${0})" \
echo -e "\e[1;36m$(basename "${0}")" \
"\e[1;35m-f /path/to/account/details.file"
echo -e "\t\e[1;33m-r record.to.update [-r another.record.to.update -r ...]"
echo -e "\t\e[0;92m[optional parameters]\e[0m\n"
@ -37,40 +37,40 @@ echo -e "-x\tDisplay script examples"
echo -e "-l\tLocation for log file output"
echo -e "\tDefault: scriptname.log in same directory as this script"
echo -e "\n\e[1;39mExamples:"
echo -e "\e[0;39mRun \e[1;36m$(basename ${0}) \e[1;92m-x\e[0m\n"
echo -e "\e[0;39mRun \e[1;36m$(basename "${0}") \e[1;92m-x\e[0m\n"
echo -e "\n"
# exit with any error code used to call this help screen
quit none $1
quit none "$1"
}
function scriptExamples {
echo -e "\n\e[1;39m$(basename ${0}) Examples:\e[0m"
echo -e "\n\e[1;39m$(basename "${0}") Examples:\e[0m"
echo -e "\n\e[1;39mExample: \e[0mUse details from myCloudFlareDetails.info"
echo -e "file in /home/janedoe directory. Update server.mydomain.com A record"
echo -e "with this machine's auto-detected IP4 address."
echo -e "\t\e[1;36m$(basename ${0})" \
echo -e "\t\e[1;36m$(basename "${0}")" \
"\e[1;35m-f /home/janedoe/myCloudFlareDetails.info"
echo -e "\t\e[1;33m-r server.mydomain.com\e[0m"
echo -e "\n\e[1;39mExample: \e[0mUse details from myCloudFlareDetails.info"
echo -e "file in /home/janedoe directory. Update server.mydomain.com AND"
echo -e "server2.mydomain.com A records with this machine's auto-detected IP6"
echo -e "address."
echo -e "\t\e[1;36m$(basename ${0})" \
echo -e "\t\e[1;36m$(basename "${0}")" \
"\e[1;35m-f /home/janedoe/myCloudFlareDetails.info"
echo -e "\t\e[1;33m-r server.mydomain.com" \
"-r server2.mydomain.com \e[1;92m-6\e[0m"
echo -e "\n\e[1;39mExample: \e[0mUse details from myCloudFlareDetails.info"
echo -e "file in /home/janedoe directory. Update server.mydomain.com A record"
echo -e "using IP4 address 1.2.3.4."
echo -e "\t\e[1;36m$(basename ${0})" \
echo -e "\t\e[1;36m$(basename "${0}")" \
"\e[1;35m-f /home/janedoe/myCloudFlareDetails.info"
echo -e "\t\e[1;33m-r server.mydomain.com \e[1;92m-i 1.2.3.4\e[0m"
echo -e "\n\e[1;39mExample: \e[0mUse details from myCloudFlareDetails.info"
echo -e "file in /home/janedoe directory. Update server3.mydomain.com AND"
echo -e "server7.mydomain.com AAAA records using IP6 address FE80::286A:FF91."
echo -e "\t\e[1;36m$(basename ${0})" \
echo -e "\t\e[1;36m$(basename "${0}")" \
"\e[1;35m-f /home/janedoe/myCloudFlareDetails.info"
echo -e "\t\e[1;33m-r server.mydomain.com" \
"\e[1;33m-r server2.mydomain.com \e[1;92m-i FE80::286A:FF91\e[0m"
@ -132,7 +132,6 @@ stamp="[`date +%Y-%m-%d` `date +%H:%M:%S`]"
# formatting
normal="\e[0m"
bold="\e[1m"
default="\e[39m"
ok="\e[32m"
err="\e[31m"
info="\e[96m"
@ -154,12 +153,12 @@ errorExplain[254]="Could not connect with CloudFlare API. Please re-run this scr
## Logging parameters -- default set to scriptname.ext.log in same
## directory as this script
scriptPath="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
scriptName="$(basename ${0})"
scriptName="$(basename "${0}")"
logFile="$scriptPath/${scriptName%.*}.log"
### Process script parameters
if [ -z $1 ]; then
if [ -z "$1" ]; then
scriptHelp 1
fi
@ -171,7 +170,7 @@ while getopts ':f:r:i:46hxl:' PARAMS; do
;;
r)
# DNS records to update
dnsRecords+=($OPTARG)
dnsRecords+=("$OPTARG")
;;
i)
# IP address to use -- NOT parsed for correctness
@ -214,13 +213,13 @@ if [ -z "$accountFile" ] || [[ $accountFile == -* ]]; then
quit 101
elif [ ! -s "$accountFile" ]; then
quit 102
elif [ -z ${dnsRecords} ]; then
elif [ -z "${dnsRecords}" ]; then
quit 103
fi
# Check if curl is installed
command -v curl >> /dev/null
curlResult=$(echo "$?")
curlResult="$?"
if [ "$curlResult" -ne 0 ]; then
quit 2
fi
@ -249,7 +248,7 @@ if [ -z "$ipAddress" ]; then
ipAddress=$(curl -s http://ipv6.icanhazip.com)
fi
# check if curl reported any errors
ipLookupResult=$(echo "$?")
ipLookupResult="$?"
if [ "$ipLookupResult" -ne 0 ]; then
quit 201
fi
@ -274,7 +273,7 @@ elif [ $ip6 -eq 1 ]; then
done
fi
# check for curl errors
cfLookupResult=$(echo "$?")
cfLookupResult="$?"
if [ "$cfLookupResult" -ne 0 ]; then
quit 254
fi
@ -286,9 +285,9 @@ for recordIdx in "${!cfRecords[@]}"; do
"${dnsRecords[recordIdx]} not found in your" \
"CloudFlare DNS records --${normal}" >> "$logFile"
# remove the entry from the dnsRecords array
unset dnsRecords[$recordIdx]
unset "dnsRecords[$recordIdx]"
# remove the entry from the records array
unset cfRecords[$recordIdx]
unset "cfRecords[$recordIdx]"
fi
done
# contract the dnsRecords and cfRecords arrays to re-order them after any
@ -298,7 +297,7 @@ cfRecords=("${cfRecords[@]}")
# after trimming errant records, it's possible dnsRecords array is empty
# check for this condition and exit (nothing to do), otherwise list arrays
if [ -z ${dnsRecords} ]; then
if [ -z "${dnsRecords}" ]; then
quit 104
else
for recordIdx in "${!cfRecords[@]}"; do
@ -324,7 +323,7 @@ done
## Check whether new IP matches old IP and update if they do not match
for recordIdx in "${!currentIP[@]}"; do
if [ ${currentIP[recordIdx]} = $ipAddress ]; then
if [ "${currentIP[recordIdx]}" = "$ipAddress" ]; then
echo -e "${bold}${ok}${stamp} -- [STATUS]" \
"${dnsRecords[recordIdx]} is up-to-date.${normal}" \
>> "$logFile"