Also able to read from config file

pull/26/head
timetoexpire 4 years ago committed by GitHub
parent 9c387341f3
commit 411ae5aa1c
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
  1. 625
      cloudflare-template.sh

@ -1,4 +1,4 @@
##!/bin/bash
#!/bin/bash
## change to "bin/sh" when necessary
auth_email="" # The email used to login 'https://dash.cloudflare.com'
@ -11,36 +11,9 @@ proxy=false # Set the proxy to true or fa
slacksitename="" # Title of site "Example Site"
slackchannel="" # Slack Channel #example
slackuri="" # URI for Slack WebHook "https://hooks.slack.com/services/xxxxx"
config_file="" # file that is config file
tolerant_is_set=0
debug_output_echo () {
if [ ! -z $debug_mode_active ]; then
if [ $debug_mode_active -eq 1 ]; then
echo -e $debug_output
fi
fi
}
exit_code () {
if [ -z $top_exit_code ]; then
top_exit_code=-999
fi
if [ $top_exit_code -lt $excode ]; then
top_exit_code=$excode
fi
if [ $tolerant_is_set -eq 1 ]; then
# Only when tolerent mode is active, it will not stop for error
logger_output="DDNS Updater: in tolerant mode - exit [$excode]"
debug_output+=$logger_output"\n"
logger $logger_output
else
#It strict mode it will stap instantly on error
debug_output_echo
exit $exit_code
fi
}
parameter_input=("$@")
cf_ddns_ip () {
###########################################
@ -48,13 +21,12 @@ cf_ddns_ip () {
###########################################
ip=$(curl -s https://api.ipify.org || curl -s https://ipv4.icanhazip.com/)
if [ "${ip}" == "" ]; then
logger_output="DDNS Updater: No public IP found"
debug_output+=$logger_output"\n"
logger -s $logger_output
# excode=1; exit_code
if [ "${ip}" == "" ]; then
logger -s "DDNS Updater: No public IP found"
debug_output+="$logger_output\n"
logger -s "$logger_output"
#no point going on if can not get ip
exit 1
exit_code 1
fi
}
@ -67,7 +39,6 @@ cf_ddns_authheader (){
else
auth_header="Authorization: Bearer"
fi
debug_output+="cf_ddns_authheader : "$auth_header"\n"
}
cf_ddns_seeka () {
@ -75,28 +46,28 @@ cf_ddns_seeka () {
## Seek for the A record
###########################################
logger_output="DDNS Updater: Check Initiated"
debug_output+=$logger_output"\n"
logger "$logger_output"
logger "DDNS Updater: Check Initiated"
debug_output+="$logger_output\n"
record=$(curl -s -X GET "https://api.cloudflare.com/client/v4/zones/$zone_identifier/dns_records?type=A&name=$record_name" \
-H "X-Auth-Email: $auth_email" \
-H "$auth_header $auth_key" \
-H "Content-Type: application/json")
debug_output+="cf_ddns_seeka : "$record"\n"
debug_output+="cf_ddns_seeka : $record\n"
}
cf_ddns_checka () {
###########################################
## Check if the domain has an A record
###########################################
cf_nonexistsrecord=1
if [[ $record == *"\"count\":0"* ]]; then
logger_output="DDNS Updater: Record does not exist, perhaps create one first? (${ip} for ${record_name})"
debug_output+=$logger_output"\n"
logger -s $logger_output
cf_nonexistsrecord=0
excode=1; exit_code
fi
debug_output+="$logger_output\n"
logger -s "$logger_output"
cf_nonexistsrecord=0
exit_code 1
else
cf_nonexistsrecord=1
fi
}
cf_ddns_currentip () {
@ -106,19 +77,19 @@ cf_ddns_currentip () {
old_ip=$(echo "$record" | sed -E 's/.*"content":"(([0-9]{1,3}\.){3}[0-9]{1,3})".*/\1/')
# Compare if they're the same
if [[ $ip == $old_ip ]]; then
logger_output="DDNS Updater: IP ($ip) for ${record_name} has not changed."
debug_output+=$logger_output"\n"
logger -s $logger_output
excode=0; exit_code
logger_output="DDNS Updater: IP ($ip) for ${record_name} has not changed."
debug_output+="$logger_output\n"
logger -s "$logger_output"
exit_code 0
fi
}
cf_ddns_set_identifier () {
###########################################
##########################################
## Set the record identifier from result
###########################################
record_identifier=$(echo "$record" | sed -E 's/.*"id":"(\w+)".*/\1/')
debug_output+="cf_ddns_set_identifier : "$record_identifier"\n"
debug_output+="cf_ddns_set_identifier : $record_identifier\n"
}
cf_ddns_update () {
@ -126,11 +97,11 @@ cf_ddns_update () {
## Change the IP@Cloudflare using the API
###########################################
update=$(curl -s -X PATCH "https://api.cloudflare.com/client/v4/zones/$zone_identifier/dns_records/$record_identifier" \
-H "X-Auth-Email: $auth_email" \
-H "$auth_header $auth_key" \
-H "Content-Type: application/json" \
--data "{\"type\":\"A\",\"name\":\"$record_name\",\"content\":\"$ip\",\"ttl\":\"$ttl\",\"proxied\":${proxy}}")
debug_output+="cf_ddns_update : "$update"\n"
-H "X-Auth-Email: $auth_email" \
-H "$auth_header $auth_key" \
-H "Content-Type: application/json" \
--data "{\"type\":\"A\",\"name\":\"$record_name\",\"content\":\"$ip\",\"ttl\":\"$ttl\",\"proxied\":${proxy}}")
debug_output+="cf_ddns_update : $update\n"
}
cf_ddns_status () {
@ -140,26 +111,30 @@ cf_ddns_status () {
case "$update" in
*"\"success\":false"*)
logger_output="DDNS Updater: $ip $record_name DDNS failed for $record_identifier ($ip). DUMPING RESULTS:\n$update"
debug_output+=$logger_output"\n"
logger -s $logger_output
curl -L -X POST $slackuri \
--data-raw '{
"channel": "'$slackchannel'",
"text" : "'"$slacksitename"' DDNS Update Failed: '$record_name': '$record_identifier' ('$ip')."
}'
excode=1; exit_code;;
debug_output+="$logger_output\n"
logger -s "$logger_output"
if [[ $slackuri != "" ]]; then
curl -L -X POST $slackuri \
--data-raw '{
"channel": "'$slackchannel'",
"text" : "'"$slacksitename"' DDNS Update Failed: '$record_name': '$record_identifier' ('$ip')."
}'
fi
exit_code 1;;
*)
logger_output="DDNS Updater: $ip $record_name DDNS updated."
debug_output+=$logger_output"\n"
logger $logger_output
curl -L -X POST $slackuri \
--data-raw '{
"channel": "'$slackchannel'",
"text" : "'"$slacksitename"' Updated: '$record_name''"'"'s'""' new IP Address is '$ip'"
}'
excode=0; exit_code;;
debug_output+="$logger_output\n"
logger "$logger_output"
if [[ $slackuri != "" ]]; then
curl -L -X POST $slackuri \
--data-raw '{
"channel": "'$slackchannel'",
"text" : "'"$slacksitename"' Updated: '$record_name''"'"'s'""' new IP Address is '$ip'"
}'
fi
exit_code 0;;
esac
}
}
cf_ddns() {
if [ ${#ip} -eq 0 ]; then
@ -180,17 +155,48 @@ cf_ddns() {
fi
}
debug_output_echo () {
if [ -n "$debug_mode_active" ]; then
if [ "$debug_mode_active" -eq 1 ]; then
echo -e "$debug_output"
fi
fi
}
exit_code () {
excode="$1"
if [ -z "$top_exit_code" ]; then
top_exit_code=-999
fi
if [ $top_exit_code -lt "$excode" ]; then
top_exit_code=$excode
fi
if [ $tolerant_is_set -eq 1 ]; then
# Only when tolerent mode is active, it will not stop for error
logger_output="DDNS Updater: in tolerant mode - exit [$excode]"
debug_output+="$logger_output\n"
logger "$logger_output"
else
#If strict mode it will stop instantly on error
debug_output_echo
exit "$excode"
fi
}
cf_counting_sheep () {
datestart=$(date +%Y/%m/%d\ %H:%M:%S)
dateend=$(date --date="+$parameter_value seconds" +"%Y-%m-%d %H:%M:%S")
logger_output="DDNS Updater: counting sheep ($parameter_value) $datestart : $dateend"
debug_output+=$logger_output"\n"
logger -s $logger_output
sleep $parameter_value
debug_output+="$logger_output\n"
logger -s "$logger_output"
sleep "$parameter_value"
}
cf_help () {
echo "# crontab\n"
echo "# crontab"
echo "*/5 * * * * /bin/bash /home/user/cloudflare-ddns-updater/cloudflare-init.sh"
echo '*/5 * * * * /bin/bash /home/user/cloudflare-ddns-updater/cloudflare-init.sh -tolerant mydomain.com example.com www.example.com x1.example.com'
echo '*/5 * * * * /bin/bash /home/user/cloudflare-ddns-updater/cloudflare-init.sh -tolerant mydomain.com -sleep=10 example.com -proxy=false www.example.com -auth_ttl=10 x1.example.com'
@ -203,13 +209,14 @@ cf_help () {
echo "-auth_identifier=X it for this will change it for proceeding domains"
echo "-auth_ttl=X it for this will change it for proceeding domains"
echo "-auth_proxy=X it for this will change it for proceeding domains"
echo "-purge will purge current setting for cloudflare"
}
cf_tolerant () {
tolerant_is_set=1
logger_output="DDNS Updater: Been set as being tolerant"
debug_output+=$logger_output"\n"
logger $logger_output
debug_output+="$logger_output\n"
logger "$logger_output"
}
cf_rsleep () {
@ -217,49 +224,43 @@ cf_rsleep () {
parameter_temp=$(( $parameter_value+1 ))
parameter_value=$(( $RANDOM % $parameter_temp ))
logger_output+="($parameter_value)"
debug_output+=$logger_output"\n"
logger $logger_output
debug_output+="$logger_output\n"
logger "$logger_output"
cf_counting_sheep
}
cf_auth_email () {
logger_output="DDNS Updater: Changed [auth_email]"
debug_output+="$logger_output ($parameter_value)\n"
logger $logger_output
logger "$logger_output"
auth_email=$parameter_value
}
cf_auth_method () {
logger_output="DDNS Updater: Changed [auth_method]"
if [ $parameter_value = "token" ] || [ $parameter_value = "global" ]; then
logger_output+=" ($parameter_value)"
auth_method=$parameter_value
logger $logger_output
else
logger_output+=" ($parameter_value) is invalied option"
logger -s $logger_output
fi
debug_output+=$logger_output"\n"
logger_output="DDNS Updater: Changed [auth_email]"
debug_output+="$logger_output ($parameter_value)\n"
logger "$logger_output"
auth_method=$parameter_value
}
debug
cf_auth_key () {
logger_output="DDNS Updater: Change [auth_key]"
debug_output+="$logger_output ($parameter_value)"
logger $logger_output
debug_ouput+="$logger_output ($parameter_value)\n"
logger "$logger_output"
auth_key=$parameter_value
}
cf_zone_identifier () {
logger_output="DDNS Updater: Change [zone_identifier]"
debug_output+="$logger_output ($parameter_value)"
logger $logger_output
debug_ouput+="$logger_output ($parameter_value)\n"
logger "$logger_output"
zone_identifier=$parameter_value
}
cf_ttl () {
logger_output="DDNS Updater: Change [ttl]"
debug_output+="$logger_output ($parameter_value)"
logger $logger_output
debug_ouput+="$logger_output ($parameter_value)\n"
logger "$logger_output"
ttl=$parameter_value
}
@ -268,41 +269,64 @@ cf_proxy () {
if [ $parameter_value = "true" ] || [ $parameter_value = "false" ]; then
logger_output+=" ($parameter_value)"
proxy=$parameter_value
logger $logger_output
logger "$logger_output"
else
logger_output+=" ($parameter_value) is invalied option"
logger -s $logger_output
logger -s "$logger_output"
fi
debug_output+="$logger_output\n"
}
cf_record_name () {
record_name=$parameter_value
cf_err_human
if [ "$err_is_human" -eq 0 ]; then
cf_ddns
fi
debug_output+=$logger_output"\n"
#TODO **************************************************************************************************************************
}
cf_ipset () {
ip=$parameter_value
logger_output="DDNS Updater: IP been set to $ip"
logger $logger_output
debug_output+=logger_output"\n"
logger "$logger_output"
debug_ouput+="$logger_output\n"
}
cf_ipcheck () {
ip=""
logger_output="DDNS Updater: IP been set to do a recheck"
logger $logger_output
debug_output+=logger_output"\n"
logger "$logger_output"
debug_ouput+="$logger_output\n"
}
cf_entry_point () {
logger_output="DDNS Updater: [entrypoint] ($parameter_value)"
logger "$logger_output"
debug_ouput+="$logger_output\n"
}
cf_remark_statment () {
debug_output+="REMark: $parameter_value\n"
}
cf_parameter_commands () {
parameter_temp=${parameter_current:1}
parameter_temp="${1:1}"
parameter_command=${parameter_temp%=*}
parameter_value=${parameter_temp##*=}
case $parameter_command in
"debug")
debug_mode_active=1
#debug_mode_active=1
:
;;
"help")
cf_help
;;
"tolerant")
cf_tolerant
#cf_tolerant
:
;;
"sleep")
cf_counting_sheep
@ -328,16 +352,32 @@ cf_parameter_commands () {
"proxy")
cf_proxy
;;
"record_name")
cf_record_name
;;
"ipset")
cf_ipset
;;
"ipcheck"
"ipcheck")
cf_ipcheck
;;
*)
logger_output="DDNS Updater: invalid parameter option been defined [${parameter_current}]"
debug_output+=$logger_output"\n"
logger -s $logger_output
"entrypoint")
cf_entry_point
;;
"purge")
cf_to_null
;;
"#")
cf_remark_statment
;;
"config_file")
:
;;
*)
logger_output="DDNS Updater: invalid parameter option been defined [${parameter_temp}]"
debug_output+="$logger_output\n"
logger -s "$logger_output"
;;
esac
}
@ -348,31 +388,61 @@ cf_err_human () {
if [ ${#auth_email} -eq 0 ]; then
err_is_human=1
logger_output="DDNS Updater: ERROR [auth_email] record not been defined"
logger -s $logger_output
logger -s "$logger_output"
fi
if [ $auth_method != "token" ] && [ $auth_method != "global" ]; then
if [ ${#auth_method} -eq 0 ]; then
err_is_human=1
logger_output='DDNS Updater: ERROR [auth_method] is invaled it has to be defined "token" "global" defined'
logger -s $logger_output
logger_output='DDNS Updater: ERROR [auth_method] setting has not been defined'
logger -s "$logger_output"
else
if [ $auth_method != "token" ] && [ $auth_method != "global" ]; then
err_is_human=1
logger_output='DDNS Updater: ERROR [auth_method] is invaled it has to be defined "token" "global" defined'
logger -s "$logger_output"
fi
fi
if [ ${#auth_key} -eq 0 ]; then
err_is_human=1
logger_output="DDNS Updater: ERROR [auth_key] record not been defined"
logger -s $logger_output
logger -s "$logger_output"
fi
if [ ${#zone_identifier} -eq 0 ]; then
err_is_human=1
logger_output="DDNS Updater: ERROR [zone_identifier] record has not been defined"
logger -s $logger_output
logger -s "$logger_output"
fi
if [ ${#record_name} -eq 0 ] && [ $argument_total -eq 0 ]; then
if [ ${#record_name} -eq 0 ]; then
err_is_human=1
logger_output="DDNS Updater: ERROR [record_name] record has not been defined"
logger -s "$logger_output"
fi
if [ ${#ttl} -eq 0 ]; then
err_is_human=1
logger_output="DDNS Updater: ERROR [ttl] record has not been defined"
logger -s "$logger_output"
fi
if [ ${#proxy} -eq 0 ]; then
err_is_human=1
logger_output='DDNS Updater: ERROR [proxy] setting has not been defined'
logger -s "$logger_output"
else
if [ $proxy != "true" ] && [ $proxy != "false" ]; then
err_is_human=1
logger_output='DDNS Updater: ERROR [proxy] is invaled it has to be defined "true" "false" defined'
logger -s "$logger_output"
fi
fi
if [ ${#record_name} -eq 0 ]; then
err_is_human=1
logger_output="DDNS Updater: ERROR [record_name] record not has been defined"
logger -s $logger_output
logger -s "$logger_output"
fi
if [ -z "$tolerant_is_set" ]; then
@ -383,36 +453,301 @@ cf_err_human () {
if [ $tolerant_is_set -lt 0 ] || [ $tolerant_is_set -gt 1 ]; then
err_is_human=1
logger_output="DDNS Updater: ERROR [tolerant_is_set] can only by 0 or 1"
logger -s $logger_output
logger -s "$logger_output"
fi
if [ $err_is_human -eq 1 ]; then
#It is done if there is error detected above
exit 1
exit_code 1
fi
}
argument_total=$#
debug_output=""
cf_err_human
cf_to_null () {
auth_email=""
auth_method=""
auth_key=""
zone_identifier=""
record_name=""
ttl=""
proxy=""
#ip=""
}
if [ $# -ne 0 ]; then
# If a parameter has been defined in will ignore any setting in [record_name]
parameter=("$@")
for (( argument_depth=0 ; argument_depth < argument_total ; argument_depth++ )); do
parameter_current=${parameter[argument_depth]}
first_character=${parameter_current:0:1}
if [ $first_character = "-" ]; then
cf_parameter_commands
cf_setting_internal () {
debug_output_local="cf_setting_internal:"
cf_setting_internal_array=('-entrypoint=_settinginternal')
if [[ -z $auth_email ]]; then
debug_output+="$debug_output_local undefined [auth_email]\n"
else
cf_setting_internal_array+=("-auth_email=$auth_email")
fi
if [[ -z $auth_method ]]; then
debug_output+="$debug_output_local undefined [auth_method]\n"
else
cf_setting_internal_array+=("-auth_method=$auth_method")
fi
if [[ -z $auth_key ]]; then
debug_output+="$debug_output_local undefined [auth_key]\n"
else
cf_setting_internal_array+=("-auth_key=${auth_key}")
fi
if [[ -z $zone_identifier ]]; then
debug_output+="$debug_output_local undefined [zone_identifier]\n"
else
cf_setting_internal_array+=("-zone_identifier=${zone_identifier}")
fi
if [[ -z $ttl ]]; then
debug_output+="$debug_output_local undefined [ttl]\n"
else
cf_setting_internal_array+=("-ttl=${ttl}")
fi
if [[ -z $proxy ]]; then
debug_output+="$debug_output_local undefined [proxy]\n"
else
cf_setting_internal_array+=("-proxy=${proxy}")
fi
if [[ -z $slacksitename ]]; then
debug_output+="$debug_output_local undefined [slacksitename]\n"
else
cf_setting_internal_array+=("-slacksitename=${slacksitename}")
fi
if [[ -z $slackchannel ]]; then
debug_output+="$debug_output_local undefined [slackchannel]\n"
else
cf_setting_internal_array+=("-slackchannel=${slackchannel}")
fi
if [[ -z $slackuri ]]; then
debug_output+="$debug_output_local undefined [slackuri]\n"
else
cf_setting_internal_array+=("-slackuri=${slackuri}")
fi
if [[ -z $config_file ]]; then
debug_output+="$debug_output_local undefined [config_file]\n"
else
cf_setting_internal_array+=("-config_file=${config_file}")
fi
## This has to called last as it do process of conatcting CF and the seting have to be already set
if [[ -z $record_name ]]; then
debug_output+="$debug_output_local undefined [record_name]\n"
else
cf_setting_internal_array+=("-record_name=${record_name}")
fi
for (( item=0; item < ${#cf_setting_internal_array[@]}; item++ )); do
debug_output+="$debug_output_local declared ${cf_setting_internal_array[item]}\n"
done
}
cf_setting_parameter () {
debug_output_local="cf_setting_parameter:"
argument_total=${#parameter_input[@]}
if [ "$argument_total" -gt 0 ] ; then
cf_setting_parameter_array=('-entrypoint=_settingparameter')
for (( argument_depth=0 ; argument_depth < argument_total ; argument_depth++ )); do
parameter_current=${parameter_input[argument_depth]}
first_character=${parameter_current:0:1}
# $'\055') # Hyphen -
if [[ $first_character = $'\055' ]]; then
retain_setting_to_check="$parameter_current"
retain_setting
activate_instantly_settings
cf_setting_parameter_array+=("${retain_setting_output}")
else
cf_setting_parameter_array+=('-record_name='"${parameter_current}")
fi
done
fi
for (( item=0; item < ${#cf_setting_parameter_array[@]}; item++ )); do
debug_output+="$debug_output_local declared ${cf_setting_parameter_array[item]}\n"
done
}
cf_setting_file () {
#i: config_file
#i: line_to_check
#i: string_exit
#i: string_filename
#io: string_exit
#io: string_y_pos
#io: string_x_pos
#o: string_character
string_y_pos=0
debug_output_local="cf_setting_file:"
if [ -f $config_file ] && [ $config_file ]; then
cf_setting_file_array=('-entrypoint=_settingfile')
while IFS= read -r string_text
do
((string_y_pos++))
string_reset_whitespace
# It will process only the line set as in $line_to_check
# It will process everyline if $line_to_check == 0 or null
if [[ $line_to_check == "$string_y_pos" ]] || [[ $line_to_check == 0 ]] || [[ -z $line_to_check ]]; then
until (( $string_exit )); do
string_character=${string_text:string_x_pos:1}
string_check_whitspace
((string_x_pos++))
string_length_check
done
if [[ $string_removed_whitespace ]]; then
first_character=${string_removed_whitespace:0:1}
# $'\055') # Hyphen -
if [[ $first_character = $'\055' ]]; then
retain_setting_to_check="$string_removed_whitespace"
retain_setting
activate_instantly_settings
else
retain_setting_output=("-record_name=${string_removed_whitespace}")
fi
cf_setting_file_array+=("${retain_setting_output}")
fi
fi
done < "$config_file"
else
if [[ $config_file ]]; then
logger_output="DDNS Updater: ${debug_output_local}file not found [${config_file}]"
debug_output+="$logger_output\n"
logger -s "$logger_output"
fi
fi
for (( item=0; item < ${#cf_setting_file_array[@]}; item++ )); do
debug_output+="$debug_output_local declared ${cf_setting_file_array[item]}\n"
done
}
string_reset_whitespace () {
#i: string_text
#o: string_exit
#o: string_x_pos
#o: within_quatation_mark
#o: string_remove_whitspace
#o: string_length
string_exit=0
string_x_pos=0
string_where_equal_sign=0
within_quatation_mark=0
string_removed_whitespace=""
string_length=${#string_text}
}
string_check_whitspace () {
#i: string_character
#i: string_x_pos
#i: string_y_pos
#io: string_removed_whitespace
#io: within_quatation_mark
#io: string_where_equal_sign
# \011 = Tab (Tab vertical) || \040 = Space
if [[ $string_character == $'\011' ]] || [[ $string_character == $'\040' ]]; then
if (( $within_quatation_mark )); then
string_removed_whitespace+=$string_character
fi
else
string_non_whitespace
fi
}
string_length_check () {
#i: string_length
#i: string_x_pos
#o: string_exit
if [ "$string_length" -eq $string_x_pos ]; then
string_exit=1
fi
# $string_length = 0 is for line that have nothing
if [ "$string_length" -eq 0 ]; then
string_exit=1
fi
}
string_non_whitespace (){
# \042 Quatation mark
if [[ $string_character == $'\042' ]]; then
within_quatation_mark=$(( ! $within_quatation_mark ))
else
#doing after else will remove remove Quatation Mark, otherwise if want it remove else place after fi
string_removed_whitespace+=$string_character
fi
# \075 Equal Sign
# it only valied if not already been set and quatation mark is false
if [[ $string_character == $'\075' ]] && (( ! $within_quatation_mark )); then
if [[ $string_where_equal_sign == 0 ]]; then
string_where_equal_sign=${#string_removed_whitespace}
fi
fi
}
retain_setting () {
# The first time it declared it vaild, anthing else is not vaild.
retain_setting_output=$retain_setting_to_check
if [ "${retain_setting_to_check:0:13}" == "-config_file=" ]; then
if [ $config_file ]; then
logger_output="DDNS Updater: ${debug_output_local} [-config_file] already defened as [${config_file}] not changed to [${retain_setting_to_check:13}]"
debug_output+="$logger_output\n"
logger -s "$logger_output"
# This is done so file name is rem out
retain_setting_output="-#=$retain_setting_to_check"
else
record_name=${parameter_current}
cf_ddns
config_file=${retain_setting_to_check:13}
retain_setting_output=$config_file
fi
fi
}
activate_instantly_settings () {
if [ "${retain_setting_to_check:0:6}" == "-debug" ]; then
debug_mode_active=1
fi
if [ "${retain_setting_to_check:0:9}" == "-tolerant" ]; then
cf_tolerant
fi
}
cf_exec () {
for (( item=0; item < ${#cf_setting_internal_array[@]}; item++ )); do
cf_parameter_commands "${cf_setting_internal_array[item]}"
done
else
# If no parameter been used it will use one above [record_name]
cf_ddns
fi
debug_output_echo
exit $err_is_human
for (( item=0; item < ${#cf_setting_parameter_array[@]}; item++ )); do
cf_parameter_commands "${cf_setting_parameter_array[item]}"
done
for (( item=0; item < ${#cf_setting_file_array[@]}; item++ )); do
cf_parameter_commands "${cf_setting_file_array[item]}"
done
}
cf_kickstart () {
cf_setting_internal
cf_setting_parameter
cf_setting_file
cf_to_null
cf_exec
debug_output_echo
}
cf_kickstart
#echo -e "$debug_output"
#echo "intrenal :${cf_setting_internal_array[*]}"
#echo "paramter :${cf_setting_parameter_array[*]}"
#echo "file :${cf_setting_file_array[*]}"
#exit

Loading…
Cancel
Save