|
@ -0,0 +1,60 @@ |
|
|
|
|
|
#!/usr/bin/env bash |
|
|
|
|
|
|
|
|
|
|
|
linode_cmd="/usr/bin/linode" |
|
|
|
|
|
|
|
|
|
|
|
######## Public functions ##################### |
|
|
|
|
|
|
|
|
|
|
|
#Usage: dns_linode_add _acme-challenge.www.domain.com "XKrxpRBosdIKFzxW_CT3KLZNf6q0HG9i01zxXp5CPBs" |
|
|
|
|
|
dns_linode_add() { |
|
|
|
|
|
fulldomain="${1}" |
|
|
|
|
|
txtvalue="${2}" |
|
|
|
|
|
|
|
|
|
|
|
_info "Using Linode" |
|
|
|
|
|
_debug "Calling: dns_linode_add() '${fulldomain}' '${txtvalue}'" |
|
|
|
|
|
|
|
|
|
|
|
domain=$(printf "%s" "${fulldomain}" | cut -d . -f 3-999) |
|
|
|
|
|
name=$(printf "%s" "${fulldomain}" | cut -d . -f 1-2) |
|
|
|
|
|
_debug name "${name}" |
|
|
|
|
|
_debug domain "${domain}" |
|
|
|
|
|
|
|
|
|
|
|
_Linode_CLI && _Linode_addTXT |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
#Usage: dns_linode_rm _acme-challenge.www.domain.com |
|
|
|
|
|
dns_linode_rm() { |
|
|
|
|
|
fulldomain="${1}" |
|
|
|
|
|
|
|
|
|
|
|
_info "Using Linode" |
|
|
|
|
|
_debug "Calling: dns_linode_rm() '${fulldomain}'" |
|
|
|
|
|
|
|
|
|
|
|
domain=$(printf "%s" "${fulldomain}" | cut -d . -f 3-999) |
|
|
|
|
|
name=$(printf "%s" "${fulldomain}" | cut -d . -f 1-2) |
|
|
|
|
|
_debug name "${name}" |
|
|
|
|
|
_debug domain "${domain}" |
|
|
|
|
|
|
|
|
|
|
|
_Linode_CLI && _Linode_rmTXT |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
#################### Private functions below ################################## |
|
|
|
|
|
|
|
|
|
|
|
_Linode_CLI() { |
|
|
|
|
|
if [ ! -f "${linode_cmd}" ]; then |
|
|
|
|
|
_err "Please install the Linode CLI package and set it up accordingly before using this DNS API." |
|
|
|
|
|
return 1 |
|
|
|
|
|
fi |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
_Linode_addTXT() { |
|
|
|
|
|
_debug "$linode_cmd domain record-update ${domain} TXT ${name} --target ${txtvalue}" |
|
|
|
|
|
$linode_cmd domain record-update ${domain} TXT ${name} --target ${txtvalue} |
|
|
|
|
|
|
|
|
|
|
|
if [ $? -ne 0 ]; then |
|
|
|
|
|
_debug "$linode_cmd domain record-create ${domain} TXT ${name} ${txtvalue}" |
|
|
|
|
|
$linode_cmd domain record-create ${domain} TXT ${name} ${txtvalue} |
|
|
|
|
|
fi |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
_Linode_rmTXT() { |
|
|
|
|
|
_debug "$linode_cmd domain record-delete ${domain} TXT ${name}" |
|
|
|
|
|
$linode_cmd domain record-delete ${domain} TXT ${name} |
|
|
|
|
|
} |