3 # bug reports to dev@1e.ca
6 #LUA_Key="sdfsdfsdfljlbjkljlkjsdfoiwje"
8 #LUA_Email="user@luadns.net"
10 LUA_Api
="https://api.luadns.com/v1"
11 LUA_auth
=$
(printf "%s" "$LUA_Email:$LUA_Key" | _base64
)
13 ######## Public functions #####################
15 #Usage: add _acme-challenge.www.domain.com "XKrxpRBosdIKFzxW_CT3KLZNf6q0HG9i01zxXp5CPBs"
20 LUA_Key
="${LUA_Key:-$(_readaccountconf_mutable LUA_Key)}"
21 LUA_Email
="${LUA_Email:-$(_readaccountconf_mutable LUA_Email)}"
22 if [ -z "$LUA_Key" ] ||
[ -z "$LUA_Email" ]; then
25 _err
"You don't specify luadns api key and email yet."
26 _err
"Please create you key and try again."
30 #save the api key and email to the account conf file.
31 _saveaccountconf_mutable LUA_Key
"$LUA_Key"
32 _saveaccountconf_mutable LUA_Email
"$LUA_Email"
34 _debug
"First detect the root zone"
35 if ! _get_root
"$fulldomain"; then
39 _debug _domain_id
"$_domain_id"
40 _debug _sub_domain
"$_sub_domain"
41 _debug _domain
"$_domain"
44 if _LUA_rest POST
"zones/$_domain_id/records" "{\"type\":\"TXT\",\"name\":\"$fulldomain.\",\"content\":\"$txtvalue\",\"ttl\":120}"; then
45 if _contains
"$response" "$fulldomain"; then
47 #todo: check if the record takes effect
50 _err
"Add txt record error."
61 LUA_Key
="${LUA_Key:-$(_readaccountconf_mutable LUA_Key)}"
62 LUA_Email
="${LUA_Email:-$(_readaccountconf_mutable LUA_Email)}"
63 _debug
"First detect the root zone"
64 if ! _get_root
"$fulldomain"; then
68 _debug _domain_id
"$_domain_id"
69 _debug _sub_domain
"$_sub_domain"
70 _debug _domain
"$_domain"
72 _debug
"Getting txt records"
73 _LUA_rest GET
"zones/${_domain_id}/records"
75 count
=$
(printf "%s\n" "$response" | _egrep_o
"\"name\":\"$fulldomain.\",\"type\":\"TXT\"" |
wc -l |
tr -d " ")
77 if [ "$count" = "0" ]; then
78 _info
"Don't need to remove."
80 record_id
=$
(printf "%s\n" "$response" | _egrep_o
"\"id\":[^,]*,\"name\":\"$fulldomain.\",\"type\":\"TXT\"" | _head_n
1 | cut
-d: -f2 | cut
-d, -f1)
81 _debug
"record_id" "$record_id"
82 if [ -z "$record_id" ]; then
83 _err
"Can not get record id to remove."
86 if ! _LUA_rest DELETE
"/zones/$_domain_id/records/$record_id"; then
87 _err
"Delete record error."
90 _contains
"$response" "$record_id"
94 #################### Private functions below ##################################
95 #_acme-challenge.www.domain.com
97 # _sub_domain=_acme-challenge.www
99 # _domain_id=sdjkglgdfewsdfg
104 if ! _LUA_rest GET
"zones"; then
108 h
=$
(printf "%s" "$domain" | cut
-d .
-f $i-100)
115 if _contains
"$response" "\"name\":\"$h\""; then
116 _domain_id
=$
(printf "%s\n" "$response" | _egrep_o
"\"id\":[^,]*,\"name\":\"$h\"" | cut
-d : -f 2 | cut
-d , -f 1)
117 _debug _domain_id
"$_domain_id"
118 if [ "$_domain_id" ]; then
119 _sub_domain
=$
(printf "%s" "$domain" | cut
-d .
-f 1-$p)
137 export _H1
="Accept: application/json"
138 export _H2
="Authorization: Basic $LUA_auth"
139 if [ "$m" != "GET" ]; then
141 response
="$(_post "$data" "$LUA_Api/$ep" "" "$m")"
143 response
="$(_get "$LUA_Api/$ep")"
146 if [ "$?" != "0" ]; then
150 _debug2 response
"$response"