Skip to content
GitLab
Menu
Projects
Groups
Snippets
Loading...
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
Menu
Open sidebar
ruanhaishen
Acme.Sh
Commits
1c9b1983
Unverified
Commit
1c9b1983
authored
Dec 09, 2017
by
Jens
Committed by
GitHub
Dec 09, 2017
Browse files
Update dns_servercow.sh
replaced tab with space
parent
488745f3
Changes
1
Hide whitespace changes
Inline
Side-by-side
dnsapi/dns_servercow.sh
View file @
1c9b1983
...
...
@@ -19,88 +19,88 @@ SERVERCOW_API="https://api.servercow.de/dns/v1/domains"
# Usage dns_servercow_add _acme-challenge.www.domain.com "abcdefghijklmnopqrstuvwxyz"
dns_servercow_add
()
{
fulldomain
=
$1
txtvalue
=
$2
_info
"Using servercow"
_debug fulldomain
"
$fulldomain
"
_debug txtvalue
"
$txtvalue
"
SERVERCOW_API_Username
=
"
${
SERVERCOW_API_Username
:-
$(
_readaccountconf_mutable SERVERCOW_API_Username
)
}
"
SERVERCOW_API_Password
=
"
${
SERVERCOW_API_Password
:-
$(
_readaccountconf_mutable SERVERCOW_API_Password
)
}
"
if
[
-z
"
$SERVERCOW_API_Username
"
]
||
[
-z
"
$SERVERCOW_API_Password
"
]
;
then
SERVERCOW_API_Username
=
""
SERVERCOW_API_Password
=
""
_err
"You don't specify servercow api username and password yet."
_err
"Please create your username and password and try again."
return
1
fi
# save the credentials to the account conf file
_saveaccountconf_mutable SERVERCOW_API_Username
"
$SERVERCOW_API_Username
"
_saveaccountconf_mutable SERVERCOW_API_Password
"
$SERVERCOW_API_Password
"
_debug
"First detect the root zone"
if
!
_get_root
"
$fulldomain
"
;
then
_err
"invalid domain"
return
1
fi
_debug _sub_domain
"
$_sub_domain
"
_debug _domain
"
$_domain
"
if
_servercow_api POST
"
$_domain
"
"{
\"
type
\"
:
\"
TXT
\"
,
\"
name
\"
:
\"
$fulldomain
\"
,
\"
content
\"
:
\"
$txtvalue
\"
,
\"
ttl
\"
:20}"
;
then
if
printf
--
"%s"
"
$response
"
|
grep
"ok"
>
/dev/null
;
then
_info
"Added, OK"
return
0
else
_err
"add txt record error."
return
1
fi
fi
_err
"add txt record error."
return
1
fulldomain
=
$1
txtvalue
=
$2
_info
"Using servercow"
_debug fulldomain
"
$fulldomain
"
_debug txtvalue
"
$txtvalue
"
SERVERCOW_API_Username
=
"
${
SERVERCOW_API_Username
:-
$(
_readaccountconf_mutable SERVERCOW_API_Username
)
}
"
SERVERCOW_API_Password
=
"
${
SERVERCOW_API_Password
:-
$(
_readaccountconf_mutable SERVERCOW_API_Password
)
}
"
if
[
-z
"
$SERVERCOW_API_Username
"
]
||
[
-z
"
$SERVERCOW_API_Password
"
]
;
then
SERVERCOW_API_Username
=
""
SERVERCOW_API_Password
=
""
_err
"You don't specify servercow api username and password yet."
_err
"Please create your username and password and try again."
return
1
fi
# save the credentials to the account conf file
_saveaccountconf_mutable SERVERCOW_API_Username
"
$SERVERCOW_API_Username
"
_saveaccountconf_mutable SERVERCOW_API_Password
"
$SERVERCOW_API_Password
"
_debug
"First detect the root zone"
if
!
_get_root
"
$fulldomain
"
;
then
_err
"invalid domain"
return
1
fi
_debug _sub_domain
"
$_sub_domain
"
_debug _domain
"
$_domain
"
if
_servercow_api POST
"
$_domain
"
"{
\"
type
\"
:
\"
TXT
\"
,
\"
name
\"
:
\"
$fulldomain
\"
,
\"
content
\"
:
\"
$txtvalue
\"
,
\"
ttl
\"
:20}"
;
then
if
printf
--
"%s"
"
$response
"
|
grep
"ok"
>
/dev/null
;
then
_info
"Added, OK"
return
0
else
_err
"add txt record error."
return
1
fi
fi
_err
"add txt record error."
return
1
}
# Usage fulldomain txtvalue
# Remove the txt record after validation
dns_servercow_rm
()
{
fulldomain
=
$1
txtvalue
=
$2
_info
"Using servercow"
_debug fulldomain
"
$fulldomain
"
_debug txtvalue
"
$fulldomain
"
SERVERCOW_API_Username
=
"
${
SERVERCOW_API_Username
:-
$(
_readaccountconf_mutable SERVERCOW_API_Username
)
}
"
SERVERCOW_API_Password
=
"
${
SERVERCOW_API_Password
:-
$(
_readaccountconf_mutable SERVERCOW_API_Password
)
}
"
if
[
-z
"
$SERVERCOW_API_Username
"
]
||
[
-z
"
$SERVERCOW_API_Password
"
]
;
then
SERVERCOW_API_Username
=
""
SERVERCOW_API_Password
=
""
_err
"You don't specify servercow api username and password yet."
_err
"Please create your username and password and try again."
return
1
fi
_debug
"First detect the root zone"
if
!
_get_root
"
$fulldomain
"
;
then
_err
"invalid domain"
return
1
fi
_debug _sub_domain
"
$_sub_domain
"
_debug _domain
"
$_domain
"
if
_servercow_api DELETE
"
$_domain
"
"{
\"
type
\"
:
\"
TXT
\"
,
\"
name
\"
:
\"
$fulldomain
\"
}"
;
then
if
printf
--
"%s"
"
$response
"
|
grep
"ok"
>
/dev/null
;
then
_info
"Deleted, OK"
_contains
"
$response
"
'"message":"ok"'
else
_err
"delete txt record error."
return
1
fi
fi
fulldomain
=
$1
txtvalue
=
$2
_info
"Using servercow"
_debug fulldomain
"
$fulldomain
"
_debug txtvalue
"
$fulldomain
"
SERVERCOW_API_Username
=
"
${
SERVERCOW_API_Username
:-
$(
_readaccountconf_mutable SERVERCOW_API_Username
)
}
"
SERVERCOW_API_Password
=
"
${
SERVERCOW_API_Password
:-
$(
_readaccountconf_mutable SERVERCOW_API_Password
)
}
"
if
[
-z
"
$SERVERCOW_API_Username
"
]
||
[
-z
"
$SERVERCOW_API_Password
"
]
;
then
SERVERCOW_API_Username
=
""
SERVERCOW_API_Password
=
""
_err
"You don't specify servercow api username and password yet."
_err
"Please create your username and password and try again."
return
1
fi
_debug
"First detect the root zone"
if
!
_get_root
"
$fulldomain
"
;
then
_err
"invalid domain"
return
1
fi
_debug _sub_domain
"
$_sub_domain
"
_debug _domain
"
$_domain
"
if
_servercow_api DELETE
"
$_domain
"
"{
\"
type
\"
:
\"
TXT
\"
,
\"
name
\"
:
\"
$fulldomain
\"
}"
;
then
if
printf
--
"%s"
"
$response
"
|
grep
"ok"
>
/dev/null
;
then
_info
"Deleted, OK"
_contains
"
$response
"
'"message":"ok"'
else
_err
"delete txt record error."
return
1
fi
fi
}
...
...
@@ -111,60 +111,60 @@ dns_servercow_rm() {
# _sub_domain=_acme-challenge.www
# _domain=domain.com
_get_root
()
{
fulldomain
=
$1
i
=
2
p
=
1
while
true
;
do
_domain
=
$(
printf
"%s"
"
$fulldomain
"
|
cut
-d
.
-f
$i
-100
)
_debug _domain
"
$_domain
"
if
[
-z
"
$_domain
"
]
;
then
# not valid
return
1
fi
if
!
_servercow_api GET
"
$_domain
"
;
then
return
1
fi
if
!
_contains
"
$response
"
'"error":"no such domain in user context"'
>
/dev/null
;
then
_sub_domain
=
$(
printf
"%s"
"
$fulldomain
"
|
cut
-d
.
-f
1-
$p
)
if
[
-z
"
$_sub_domain
"
]
;
then
# not valid
return
1
fi
return
0
fi
p
=
$i
i
=
$(
_math
"
$i
"
+ 1
)
done
;
return
1
fulldomain
=
$1
i
=
2
p
=
1
while
true
;
do
_domain
=
$(
printf
"%s"
"
$fulldomain
"
|
cut
-d
.
-f
$i
-100
)
_debug _domain
"
$_domain
"
if
[
-z
"
$_domain
"
]
;
then
# not valid
return
1
fi
if
!
_servercow_api GET
"
$_domain
"
;
then
return
1
fi
if
!
_contains
"
$response
"
'"error":"no such domain in user context"'
>
/dev/null
;
then
_sub_domain
=
$(
printf
"%s"
"
$fulldomain
"
|
cut
-d
.
-f
1-
$p
)
if
[
-z
"
$_sub_domain
"
]
;
then
# not valid
return
1
fi
return
0
fi
p
=
$i
i
=
$(
_math
"
$i
"
+ 1
)
done
;
return
1
}
_servercow_api
()
{
method
=
$1
domain
=
$2
data
=
"
$3
"
export
_H1
=
"Content-Type: application/json"
export
_H2
=
"X-Auth-Username:
$SERVERCOW_API_Username
"
export
_H3
=
"X-Auth-Password:
$SERVERCOW_API_Password
"
if
[
"
$method
"
!=
"GET"
]
;
then
_debug data
"
$data
"
response
=
"
$(
_post
"
$data
"
"
$SERVERCOW_API
/
$domain
"
""
"
$method
"
)
"
else
response
=
"
$(
_get
"
$SERVERCOW_API
/
$domain
"
)
"
fi
if
[
"
$?
"
!=
"0"
]
;
then
_err
"error
$domain
"
return
1
fi
_debug2 response
"
$response
"
return
0
method
=
$1
domain
=
$2
data
=
"
$3
"
export
_H1
=
"Content-Type: application/json"
export
_H2
=
"X-Auth-Username:
$SERVERCOW_API_Username
"
export
_H3
=
"X-Auth-Password:
$SERVERCOW_API_Password
"
if
[
"
$method
"
!=
"GET"
]
;
then
_debug data
"
$data
"
response
=
"
$(
_post
"
$data
"
"
$SERVERCOW_API
/
$domain
"
""
"
$method
"
)
"
else
response
=
"
$(
_get
"
$SERVERCOW_API
/
$domain
"
)
"
fi
if
[
"
$?
"
!=
"0"
]
;
then
_err
"error
$domain
"
return
1
fi
_debug2 response
"
$response
"
return
0
}
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment