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
73b89c55
Unverified
Commit
73b89c55
authored
Sep 17, 2019
by
neil
Committed by
GitHub
Sep 17, 2019
Browse files
Merge pull request #2486 from Neilpang/dev
sync
parents
0ca46774
950d024a
Changes
6
Show whitespace changes
Inline
Side-by-side
acme.sh
View file @
73b89c55
...
@@ -2799,6 +2799,11 @@ _setNginx() {
...
@@ -2799,6 +2799,11 @@ _setNginx() {
_debug NGINX_CONF "$NGINX_CONF"
_debug NGINX_CONF "$NGINX_CONF"
NGINX_CONF="$(echo "$NGINX_CONF" | cut -d = -f 2)"
NGINX_CONF="$(echo "$NGINX_CONF" | cut -d = -f 2)"
_debug NGINX_CONF "$NGINX_CONF"
_debug NGINX_CONF "$NGINX_CONF"
if [ -z "$NGINX_CONF" ]; then
_err "Can not find nginx conf."
NGINX_CONF=""
return 1
fi
if [ ! -f "$NGINX_CONF" ]; then
if [ ! -f "$NGINX_CONF" ]; then
_err "'$NGINX_CONF' doesn't exist."
_err "'$NGINX_CONF' doesn't exist."
NGINX_CONF=""
NGINX_CONF=""
...
@@ -6241,8 +6246,8 @@ _checkSudo() {
...
@@ -6241,8 +6246,8 @@ _checkSudo() {
#it's root using sudo, no matter it's using sudo or not, just fine
#it's root using sudo, no matter it's using sudo or not, just fine
return 0
return 0
fi
fi
if
[
"
$SUDO_COMMAND
"
=
"/bin/su"
]
;
then
if [ "$SUDO_COMMAND" = "/bin/su"
] || [ "$SUDO_COMMAND" = "/bin/bash"
]; then
#it's a normal user doing "sudo su"
#it's a normal user doing "sudo su"
, or `sudo -i` or `sudo -s`
#fine
#fine
return 0
return 0
fi
fi
...
@@ -6503,6 +6508,10 @@ _process() {
...
@@ -6503,6 +6508,10 @@ _process() {
;;
;;
--nginx)
--nginx)
wvalue="$NGINX"
wvalue="$NGINX"
if [ "$2" ] && ! _startswith "$2" "-"; then
wvalue="$NGINX$2"
shift
fi
if [ -z "$_webroot" ]; then
if [ -z "$_webroot" ]; then
_webroot="$wvalue"
_webroot="$wvalue"
else
else
...
...
dnsapi/dns_ali.sh
View file @
73b89c55
...
@@ -185,7 +185,7 @@ _clean() {
...
@@ -185,7 +185,7 @@ _clean() {
return
1
return
1
fi
fi
record_id
=
"
$(
echo
"
$response
"
|
tr
'{'
"
\n
"
|
grep
"
$_sub_domain
"
|
grep
"
$txtvalue
"
|
tr
","
"
\n
"
|
grep
RecordId |
cut
-d
'"'
-f
4
)
"
record_id
=
"
$(
echo
"
$response
"
|
tr
'{'
"
\n
"
|
grep
"
$_sub_domain
"
|
grep
--
"
$txtvalue
"
|
tr
","
"
\n
"
|
grep
RecordId |
cut
-d
'"'
-f
4
)
"
_debug2 record_id
"
$record_id
"
_debug2 record_id
"
$record_id
"
if
[
-z
"
$record_id
"
]
;
then
if
[
-z
"
$record_id
"
]
;
then
...
...
dnsapi/dns_domeneshop.sh
0 → 100644
View file @
73b89c55
#!/usr/bin/env sh
DOMENESHOP_Api_Endpoint
=
"https://api.domeneshop.no/v0"
##################### Public functions #####################
# Usage: dns_domeneshop_add <full domain> <txt record>
# Example: dns_domeneshop_add _acme-challenge.www.domain.com "XKrxpRBosdIKFzxW_CT3KLZNf6q0HG9i01zxXp5CPBs"
dns_domeneshop_add
()
{
fulldomain
=
$1
txtvalue
=
$2
# Get token and secret
DOMENESHOP_Token
=
"
${
DOMENESHOP_Token
:-
$(
_readaccountconf_mutable DOMENESHOP_Token
)
}
"
DOMENESHOP_Secret
=
"
${
DOMENESHOP_Secret
:-
$(
_readaccountconf_mutable DOMENESHOP_Secret
)
}
"
if
[
-z
"
$DOMENESHOP_Token
"
]
||
[
-z
"
$DOMENESHOP_Secret
"
]
;
then
DOMENESHOP_Token
=
""
DOMENESHOP_Secret
=
""
_err
"You need to spesify a Domeneshop/Domainnameshop API Token and Secret."
return
1
fi
# Save the api token and secret.
_saveaccountconf_mutable DOMENESHOP_Token
"
$DOMENESHOP_Token
"
_saveaccountconf_mutable DOMENESHOP_Secret
"
$DOMENESHOP_Secret
"
# Get the domain name id
if
!
_get_domainid
"
$fulldomain
"
;
then
_err
"Did not find domainname"
return
1
fi
# Create record
_domeneshop_rest POST
"domains/
$_domainid
/dns"
"{
\"
type
\"
:
\"
TXT
\"
,
\"
host
\"
:
\"
$_sub_domain
\"
,
\"
data
\"
:
\"
$txtvalue
\"
,
\"
ttl
\"
:120}"
}
# Usage: dns_domeneshop_rm <full domain> <txt record>
# Example: dns_domeneshop_rm _acme-challenge.www.domain.com "XKrxpRBosdIKFzxW_CT3KLZNf6q0HG9i01zxXp5CPBs"
dns_domeneshop_rm
()
{
fulldomain
=
$1
txtvalue
=
$2
# Get token and secret
DOMENESHOP_Token
=
"
${
DOMENESHOP_Token
:-
$(
_readaccountconf_mutable DOMENESHOP_Token
)
}
"
DOMENESHOP_Secret
=
"
${
DOMENESHOP_Secret
:-
$(
_readaccountconf_mutable DOMENESHOP_Secret
)
}
"
if
[
-z
"
$DOMENESHOP_Token
"
]
||
[
-z
"
$DOMENESHOP_Secret
"
]
;
then
DOMENESHOP_Token
=
""
DOMENESHOP_Secret
=
""
_err
"You need to spesify a Domeneshop/Domainnameshop API Token and Secret."
return
1
fi
# Get the domain name id
if
!
_get_domainid
"
$fulldomain
"
;
then
_err
"Did not find domainname"
return
1
fi
# Find record
if
!
_get_recordid
"
$_domainid
"
"
$_sub_domain
"
"
$txtvalue
"
;
then
_err
"Did not find dns record"
return
1
fi
# Remove record
_domeneshop_rest DELETE
"domains/
$_domainid
/dns/
$_recordid
"
}
##################### Private functions #####################
_get_domainid
()
{
domain
=
$1
# Get domains
_domeneshop_rest GET
"domains"
if
!
_contains
"
$response
"
"
\"
id
\"
:"
;
then
_err
"failed to get domain names"
return
1
fi
i
=
2
p
=
1
while
true
;
do
h
=
$(
printf
"%s"
"
$domain
"
|
cut
-d
.
-f
$i
-100
)
_debug
"h"
"
$h
"
if
[
-z
"
$h
"
]
;
then
#not valid
return
1
fi
if
_contains
"
$response
"
"
\"
$h
\"
"
>
/dev/null
;
then
# We have found the domain name.
_sub_domain
=
$(
printf
"%s"
"
$domain
"
|
cut
-d
.
-f
1-
$p
)
_domain
=
$h
_domainid
=
$(
printf
"%s"
"
$response
"
| _egrep_o
"[^{]*
\"
domain
\"
:
\"
$_domain
\"
[^}]*"
| _egrep_o
"
\"
id
\"
:[0-9]+"
|
cut
-d
:
-f
2
)
return
0
fi
p
=
$i
i
=
$(
_math
"
$i
"
+ 1
)
done
return
1
}
_get_recordid
()
{
domainid
=
$1
subdomain
=
$2
txtvalue
=
$3
# Get all dns records for the domainname
_domeneshop_rest GET
"domains/
$domainid
/dns"
if
!
_contains
"
$response
"
"
\"
id
\"
:"
;
then
_debug
"No records in dns"
return
1
fi
if
!
_contains
"
$response
"
"
\"
host
\"
:
\"
$subdomain
\"
"
;
then
_debug
"Record does not exist"
return
1
fi
# Get the id of the record in question
_recordid
=
$(
printf
"%s"
"
$response
"
| _egrep_o
"[^{]*
\"
host
\"
:
\"
$subdomain
\"
[^}]*"
| _egrep_o
"[^{]*
\"
data
\"
:
\"
$txtvalue
\"
[^}]*"
| _egrep_o
"
\"
id
\"
:[0-9]+"
|
cut
-d
:
-f
2
)
if
[
-z
"
$_recordid
"
]
;
then
return
1
fi
return
0
}
_domeneshop_rest
()
{
method
=
$1
endpoint
=
$2
data
=
$3
credentials
=
$(
printf
"%b"
"
$DOMENESHOP_Token
:
$DOMENESHOP_Secret
"
| _base64
)
export
_H1
=
"Authorization: Basic
$credentials
"
export
_H2
=
"Content-Type: application/json"
if
[
"
$method
"
!=
"GET"
]
;
then
response
=
"
$(
_post
"
$data
"
"
$DOMENESHOP_Api_Endpoint
/
$endpoint
"
""
"
$method
"
)
"
else
response
=
"
$(
_get
"
$DOMENESHOP_Api_Endpoint
/
$endpoint
"
)
"
fi
if
[
"
$?
"
!=
"0"
]
;
then
_err
"error
$endpoint
"
return
1
fi
return
0
}
dnsapi/dns_linode_v4.sh
View file @
73b89c55
...
@@ -31,7 +31,8 @@ dns_linode_v4_add() {
...
@@ -31,7 +31,8 @@ dns_linode_v4_add() {
_payload
=
"{
_payload
=
"{
\"
type
\"
:
\"
TXT
\"
,
\"
type
\"
:
\"
TXT
\"
,
\"
name
\"
:
\"
$_sub_domain
\"
,
\"
name
\"
:
\"
$_sub_domain
\"
,
\"
target
\"
:
\"
$txtvalue
\"
\"
target
\"
:
\"
$txtvalue
\"
,
\"
ttl_sec
\"
: 300
}"
}"
if
_rest POST
"/
$_domain_id
/records"
"
$_payload
"
&&
[
-n
"
$response
"
]
;
then
if
_rest POST
"/
$_domain_id
/records"
"
$_payload
"
&&
[
-n
"
$response
"
]
;
then
...
...
dnsapi/dns_namesilo.sh
View file @
73b89c55
...
@@ -110,7 +110,7 @@ _get_root() {
...
@@ -110,7 +110,7 @@ _get_root() {
return
1
return
1
fi
fi
if
_contains
"
$response
"
"
$host
"
;
then
if
_contains
"
$response
"
"
<domain>
$host
"
;
then
_sub_domain
=
$(
printf
"%s"
"
$domain
"
|
cut
-d
.
-f
1-
$p
)
_sub_domain
=
$(
printf
"%s"
"
$domain
"
|
cut
-d
.
-f
1-
$p
)
_domain
=
"
$host
"
_domain
=
"
$host
"
return
0
return
0
...
...
notify/xmpp.sh
0 → 100644
View file @
73b89c55
#!/usr/bin/env sh
#Support xmpp via sendxmpp
#XMPP_BIN="/usr/bin/sendxmpp"
#XMPP_BIN_ARGS="-n -t --tls-ca-path=/etc/ssl/certs"
#XMPP_TO="zzzz@example.com"
xmpp_send
()
{
_subject
=
"
$1
"
_content
=
"
$2
"
_statusCode
=
"
$3
"
#0: success, 1: error 2($RENEW_SKIP): skipped
_debug
"_subject"
"
$_subject
"
_debug
"_content"
"
$_content
"
_debug
"_statusCode"
"
$_statusCode
"
XMPP_BIN
=
"
${
XMPP_BIN
:-
$(
_readaccountconf_mutable XMPP_BIN
)
}
"
if
[
-n
"
$XMPP_BIN
"
]
&&
!
_exists
"
$XMPP_BIN
"
;
then
_err
"It seems that the command
$XMPP_BIN
is not in path."
return
1
fi
_XMPP_BIN
=
$(
_xmpp_bin
)
if
[
-n
"
$XMPP_BIN
"
]
;
then
_saveaccountconf_mutable XMPP_BIN
"
$XMPP_BIN
"
else
_clearaccountconf
"XMPP_BIN"
fi
XMPP_BIN_ARGS
=
"
${
XMPP_BIN_ARGS
:-
$(
_readaccountconf_mutable XMPP_BIN_ARGS
)
}
"
if
[
-n
"
$XMPP_BIN_ARGS
"
]
;
then
_saveaccountconf_mutable XMPP_BIN_ARGS
"
$XMPP_BIN_ARGS
"
else
_clearaccountconf
"XMPP_BIN_ARGS"
fi
XMPP_TO
=
"
${
XMPP_TO
:-
$(
_readaccountconf_mutable XMPP_TO
)
}
"
if
[
-n
"
$XMPP_TO
"
]
;
then
if
!
_xmpp_valid
"
$XMPP_TO
"
;
then
_err
"It seems that the XMPP_TO=
$XMPP_TO
is not a valid xmpp address."
return
1
fi
_saveaccountconf_mutable XMPP_TO
"
$XMPP_TO
"
fi
result
=
$(
{
_xmpp_message |
eval
"
$(
_xmpp_cmnd
)
"
;
}
2>&1
)
# shellcheck disable=SC2181
if
[
$?
-ne
0
]
;
then
_debug
"xmpp send error."
_err
"
$result
"
return
1
fi
_debug
"xmpp send success."
return
0
}
_xmpp_bin
()
{
if
[
-n
"
$XMPP_BIN
"
]
;
then
_XMPP_BIN
=
"
$XMPP_BIN
"
elif
_exists
"sendxmpp"
;
then
_XMPP_BIN
=
"sendxmpp"
else
_err
"Please install sendxmpp first."
return
1
fi
echo
"
$_XMPP_BIN
"
}
_xmpp_cmnd
()
{
case
$(
basename
"
$_XMPP_BIN
"
)
in
sendxmpp
)
echo
"'
$_XMPP_BIN
' '
$XMPP_TO
'
$XMPP_BIN_ARGS
"
;;
*
)
_err
"Command
$XMPP_BIN
is not supported, use sendxmpp."
return
1
;;
esac
}
_xmpp_message
()
{
echo
"
$_subject
"
}
_xmpp_valid
()
{
_contains
"
$1
"
"@"
}
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