Skip to content
GitLab
Menu
Projects
Groups
Snippets
Loading...
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
Menu
Open sidebar
ruanhaishen
Acme.Sh
Commits
6af19167
Commit
6af19167
authored
Jan 31, 2016
by
Neil
Browse files
Merge pull request #54 from Neilpang/installhome
install to home. do not write /usr/local/bin anymore.
parents
a925dd56
b4e2604c
Changes
1
Hide whitespace changes
Inline
Side-by-side
le.sh
View file @
6af19167
...
@@ -163,8 +163,8 @@ _send_signed_request() {
...
@@ -163,8 +163,8 @@ _send_signed_request() {
_debug url
$url
_debug url
$url
_debug payload
"
$payload
"
_debug payload
"
$payload
"
CURL_HEADER
=
"
$WORKING_DIR
/curl.header"
CURL_HEADER
=
"
$
LE_
WORKING_DIR
/curl.header"
dp
=
"
$WORKING_DIR
/curl.dump"
dp
=
"
$
LE_
WORKING_DIR
/curl.dump"
CURL
=
"curl --silent --dump-header
$CURL_HEADER
"
CURL
=
"curl --silent --dump-header
$CURL_HEADER
"
if
[
"
$DEBUG
"
]
;
then
if
[
"
$DEBUG
"
]
;
then
CURL
=
"
$CURL
--trace-ascii
$dp
"
CURL
=
"
$CURL
--trace-ascii
$dp
"
...
@@ -303,8 +303,8 @@ _initpath() {
...
@@ -303,8 +303,8 @@ _initpath() {
fi
fi
fi
fi
if
[
-z
"
$WORKING_DIR
"
]
;
then
if
[
-z
"
$
LE_
WORKING_DIR
"
]
;
then
WORKING_DIR
=
$HOME
/.le
LE_
WORKING_DIR
=
$HOME
/.le
fi
fi
if
[
-z
"
$ACME_DIR
"
]
;
then
if
[
-z
"
$ACME_DIR
"
]
;
then
...
@@ -312,18 +312,18 @@ _initpath() {
...
@@ -312,18 +312,18 @@ _initpath() {
fi
fi
if
[
-z
"
$APACHE_CONF_BACKUP_DIR
"
]
;
then
if
[
-z
"
$APACHE_CONF_BACKUP_DIR
"
]
;
then
APACHE_CONF_BACKUP_DIR
=
"
$WORKING_DIR
/"
APACHE_CONF_BACKUP_DIR
=
"
$
LE_
WORKING_DIR
/"
fi
fi
domain
=
"
$1
"
domain
=
"
$1
"
mkdir
-p
"
$WORKING_DIR
"
mkdir
-p
"
$
LE_
WORKING_DIR
"
if
[
-z
"
$ACCOUNT_KEY_PATH
"
]
;
then
if
[
-z
"
$ACCOUNT_KEY_PATH
"
]
;
then
ACCOUNT_KEY_PATH
=
"
$WORKING_DIR
/account.key"
ACCOUNT_KEY_PATH
=
"
$
LE_
WORKING_DIR
/account.key"
fi
fi
if
[
-z
"
$ACCOUNT_CONF_PATH
"
]
;
then
if
[
-z
"
$ACCOUNT_CONF_PATH
"
]
;
then
ACCOUNT_CONF_PATH
=
"
$WORKING_DIR
/account.conf"
ACCOUNT_CONF_PATH
=
"
$
LE_
WORKING_DIR
/account.conf"
fi
fi
if
[
-f
"
$ACCOUNT_CONF_PATH
"
]
;
then
if
[
-f
"
$ACCOUNT_CONF_PATH
"
]
;
then
...
@@ -334,22 +334,22 @@ _initpath() {
...
@@ -334,22 +334,22 @@ _initpath() {
return
0
return
0
fi
fi
mkdir
-p
"
$WORKING_DIR
/
$domain
"
mkdir
-p
"
$
LE_
WORKING_DIR
/
$domain
"
if
[
-z
"
$DOMAIN_CONF
"
]
;
then
if
[
-z
"
$DOMAIN_CONF
"
]
;
then
DOMAIN_CONF
=
"
$WORKING_DIR
/
$domain
/
$Le_Domain
.conf"
DOMAIN_CONF
=
"
$
LE_
WORKING_DIR
/
$domain
/
$Le_Domain
.conf"
fi
fi
if
[
-z
"
$CSR_PATH
"
]
;
then
if
[
-z
"
$CSR_PATH
"
]
;
then
CSR_PATH
=
"
$WORKING_DIR
/
$domain
/
$domain
.csr"
CSR_PATH
=
"
$
LE_
WORKING_DIR
/
$domain
/
$domain
.csr"
fi
fi
if
[
-z
"
$CERT_KEY_PATH
"
]
;
then
if
[
-z
"
$CERT_KEY_PATH
"
]
;
then
CERT_KEY_PATH
=
"
$WORKING_DIR
/
$domain
/
$domain
.key"
CERT_KEY_PATH
=
"
$
LE_
WORKING_DIR
/
$domain
/
$domain
.key"
fi
fi
if
[
-z
"
$CERT_PATH
"
]
;
then
if
[
-z
"
$CERT_PATH
"
]
;
then
CERT_PATH
=
"
$WORKING_DIR
/
$domain
/
$domain
.cer"
CERT_PATH
=
"
$
LE_
WORKING_DIR
/
$domain
/
$domain
.cer"
fi
fi
if
[
-z
"
$CA_CERT_PATH
"
]
;
then
if
[
-z
"
$CA_CERT_PATH
"
]
;
then
CA_CERT_PATH
=
"
$WORKING_DIR
/
$domain
/ca.cer"
CA_CERT_PATH
=
"
$
LE_
WORKING_DIR
/
$domain
/ca.cer"
fi
fi
}
}
...
@@ -584,7 +584,7 @@ issue() {
...
@@ -584,7 +584,7 @@ issue() {
if
[
"
$code
"
==
""
]
||
[
"
$code
"
==
'201'
]
;
then
if
[
"
$code
"
==
""
]
||
[
"
$code
"
==
'201'
]
;
then
_info
"Registered"
_info
"Registered"
echo
$response
>
$WORKING_DIR
/account.json
echo
$response
>
$
LE_
WORKING_DIR
/account.json
elif
[
"
$code
"
==
'409'
]
;
then
elif
[
"
$code
"
==
'409'
]
;
then
_info
"Already registered"
_info
"Already registered"
else
else
...
@@ -650,18 +650,18 @@ issue() {
...
@@ -650,18 +650,18 @@ issue() {
#dns
#dns
#1. check use api
#1. check use api
d_api
=
""
d_api
=
""
if
[
-f
"
$WORKING_DIR
/
$d
/
$Le_Webroot
"
]
;
then
if
[
-f
"
$
LE_
WORKING_DIR
/
$d
/
$Le_Webroot
"
]
;
then
d_api
=
"
$WORKING_DIR
/
$d
/
$Le_Webroot
"
d_api
=
"
$
LE_
WORKING_DIR
/
$d
/
$Le_Webroot
"
elif
[
-f
"
$WORKING_DIR
/
$d
/
$Le_Webroot
.sh"
]
;
then
elif
[
-f
"
$
LE_
WORKING_DIR
/
$d
/
$Le_Webroot
.sh"
]
;
then
d_api
=
"
$WORKING_DIR
/
$d
/
$Le_Webroot
.sh"
d_api
=
"
$
LE_
WORKING_DIR
/
$d
/
$Le_Webroot
.sh"
elif
[
-f
"
$WORKING_DIR
/
$Le_Webroot
"
]
;
then
elif
[
-f
"
$
LE_
WORKING_DIR
/
$Le_Webroot
"
]
;
then
d_api
=
"
$WORKING_DIR
/
$Le_Webroot
"
d_api
=
"
$
LE_
WORKING_DIR
/
$Le_Webroot
"
elif
[
-f
"
$WORKING_DIR
/
$Le_Webroot
.sh"
]
;
then
elif
[
-f
"
$
LE_
WORKING_DIR
/
$Le_Webroot
.sh"
]
;
then
d_api
=
"
$WORKING_DIR
/
$Le_Webroot
.sh"
d_api
=
"
$
LE_
WORKING_DIR
/
$Le_Webroot
.sh"
elif
[
-f
"
$WORKING_DIR
/dnsapi/
$Le_Webroot
"
]
;
then
elif
[
-f
"
$
LE_
WORKING_DIR
/dnsapi/
$Le_Webroot
"
]
;
then
d_api
=
"
$WORKING_DIR
/dnsapi/
$Le_Webroot
"
d_api
=
"
$
LE_
WORKING_DIR
/dnsapi/
$Le_Webroot
"
elif
[
-f
"
$WORKING_DIR
/dnsapi/
$Le_Webroot
.sh"
]
;
then
elif
[
-f
"
$
LE_
WORKING_DIR
/dnsapi/
$Le_Webroot
.sh"
]
;
then
d_api
=
"
$WORKING_DIR
/dnsapi/
$Le_Webroot
.sh"
d_api
=
"
$
LE_
WORKING_DIR
/dnsapi/
$Le_Webroot
.sh"
fi
fi
_debug d_api
"
$d_api
"
_debug d_api
"
$d_api
"
...
@@ -897,7 +897,7 @@ renewAll() {
...
@@ -897,7 +897,7 @@ renewAll() {
_initpath
_initpath
_info
"renewAll"
_info
"renewAll"
for
d
in
$(
ls
-F
$WORKING_DIR
|
grep
'/$'
)
;
do
for
d
in
$(
ls
-F
$
LE_
WORKING_DIR
|
grep
'/$'
)
;
do
d
=
$(
echo
$d
|
cut
-d
'/'
-f
1
)
d
=
$(
echo
$d
|
cut
-d
'/'
-f
1
)
_info
"renew
$d
"
_info
"renew
$d
"
...
@@ -992,13 +992,13 @@ installcronjob() {
...
@@ -992,13 +992,13 @@ installcronjob() {
_initpath
_initpath
_info
"Installing cron job"
_info
"Installing cron job"
if
!
crontab
-l
|
grep
'le.sh cron'
;
then
if
!
crontab
-l
|
grep
'le.sh cron'
;
then
if
[
-f
"
$WORKING_DIR
/le.sh"
]
;
then
if
[
-f
"
$
LE_
WORKING_DIR
/le.sh"
]
;
then
lesh
=
"
\"
$WORKING_DIR
\"
/le.sh"
lesh
=
"
\"
$
LE_
WORKING_DIR
\"
/le.sh"
else
else
_err
"Can not install cronjob, le.sh not found."
_err
"Can not install cronjob, le.sh not found."
return
1
return
1
fi
fi
crontab
-l
|
{
cat
;
echo
"0 0 * * *
$SUDO
WORKING_DIR=
\"
$WORKING_DIR
\"
$lesh
cron > /dev/null"
;
}
| crontab -
crontab
-l
|
{
cat
;
echo
"0 0 * * *
$SUDO
LE_
WORKING_DIR=
\"
$
LE_
WORKING_DIR
\"
$lesh
cron > /dev/null"
;
}
| crontab -
fi
fi
return
0
return
0
}
}
...
@@ -1008,13 +1008,53 @@ uninstallcronjob() {
...
@@ -1008,13 +1008,53 @@ uninstallcronjob() {
cr
=
"
$(
crontab
-l
|
grep
'le.sh cron'
)
"
cr
=
"
$(
crontab
-l
|
grep
'le.sh cron'
)
"
if
[
"
$cr
"
]
;
then
if
[
"
$cr
"
]
;
then
crontab
-l
|
sed
"/le.sh cron/d"
| crontab -
crontab
-l
|
sed
"/le.sh cron/d"
| crontab -
WORKING_DIR
=
"
$(
echo
"
$cr
"
|
cut
-d
' '
-f
7 |
cut
-d
'='
-f
2 |
tr
-d
'"'
)
"
LE_
WORKING_DIR
=
"
$(
echo
"
$cr
"
|
cut
-d
' '
-f
7 |
cut
-d
'='
-f
2 |
tr
-d
'"'
)
"
_info WORKING_DIR
"
$WORKING_DIR
"
_info
LE_
WORKING_DIR
"
$
LE_
WORKING_DIR
"
fi
fi
_initpath
_initpath
}
}
# Detect profile file if not specified as environment variable
_detect_profile
()
{
if
[
-n
"
$PROFILE
"
-a
-f
"
$PROFILE
"
]
;
then
echo
"
$PROFILE
"
return
fi
local
DETECTED_PROFILE
DETECTED_PROFILE
=
''
local
SHELLTYPE
SHELLTYPE
=
"
$(
basename
"/
$SHELL
"
)
"
if
[
"
$SHELLTYPE
"
=
"bash"
]
;
then
if
[
-f
"
$HOME
/.bashrc"
]
;
then
DETECTED_PROFILE
=
"
$HOME
/.bashrc"
elif
[
-f
"
$HOME
/.bash_profile"
]
;
then
DETECTED_PROFILE
=
"
$HOME
/.bash_profile"
fi
elif
[
"
$SHELLTYPE
"
=
"zsh"
]
;
then
DETECTED_PROFILE
=
"
$HOME
/.zshrc"
fi
if
[
-z
"
$DETECTED_PROFILE
"
]
;
then
if
[
-f
"
$HOME
/.profile"
]
;
then
DETECTED_PROFILE
=
"
$HOME
/.profile"
elif
[
-f
"
$HOME
/.bashrc"
]
;
then
DETECTED_PROFILE
=
"
$HOME
/.bashrc"
elif
[
-f
"
$HOME
/.bash_profile"
]
;
then
DETECTED_PROFILE
=
"
$HOME
/.bash_profile"
elif
[
-f
"
$HOME
/.zshrc"
]
;
then
DETECTED_PROFILE
=
"
$HOME
/.zshrc"
fi
fi
if
[
!
-z
"
$DETECTED_PROFILE
"
]
;
then
echo
"
$DETECTED_PROFILE
"
fi
}
install
()
{
install
()
{
_initpath
_initpath
...
@@ -1047,33 +1087,33 @@ install() {
...
@@ -1047,33 +1087,33 @@ install() {
return
1
return
1
fi
fi
_info
"Installing to
$WORKING_DIR
"
_info
"Installing to
$
LE_
WORKING_DIR
"
#try install to /bin if is root
_info
"Installed to
$LE_WORKING_DIR
/le.sh"
if
[
!
-f
/usr/local/bin/le.sh
]
;
then
cp
le.sh
$LE_WORKING_DIR
/
#if root
chmod
+x
$LE_WORKING_DIR
/le.sh
if
$SUDO
cp
le.sh /usr/local/bin/le.sh
>
/dev/null 2>&1
;
then
$SUDO
chmod
755 /usr/local/bin/le.sh
_profile
=
"
$(
_detect_profile
)
"
$SUDO
ln
-s
"/usr/local/bin/le.sh"
/usr/local/bin/le
if
[
"
$_profile
"
]
;
then
rm
-f
$WORKING_DIR
/le.sh
_debug
"Found profile:
$_profile
"
$SUDO
ln
-s
/usr/local/bin/le.sh
$WORKING_DIR
/le.sh
_info
"Installed to /usr/local/bin/le"
echo
"LE_WORKING_DIR=
$LE_WORKING_DIR
else
alias le=
\"
$LE_WORKING_DIR
/le.sh
\"
#install to home, for non root user
alias le.sh=
\"
$LE_WORKING_DIR
/le.sh
\"
cp
le.sh
$WORKING_DIR
/
"
>
"
$LE_WORKING_DIR
/le.env"
chmod
+x
$WORKING_DIR
/le.sh
_info
"Installed to
$WORKING_DIR
/le.sh"
_setopt
"
$_profile
"
"source
\"
$LE_WORKING_DIR
/le.env
\"
"
fi
_info
"OK, Close and reopen your terminal to start using le"
else
_info
"No profile is found, you will need to go into
$LE_WORKING_DIR
to use le.sh"
fi
fi
rm
-f
$WORKING_DIR
/le
ln
-s
$WORKING_DIR
/le.sh
$WORKING_DIR
/le
mkdir
-p
$WORKING_DIR
/dnsapi
mkdir
-p
$
LE_
WORKING_DIR
/dnsapi
cp
dnsapi/
*
$WORKING_DIR
/dnsapi/
cp
dnsapi/
*
$
LE_
WORKING_DIR
/dnsapi/
#to keep compatible mv the .acc file to .key file
#to keep compatible mv the .acc file to .key file
if
[
-f
"
$WORKING_DIR
/account.acc"
]
;
then
if
[
-f
"
$
LE_
WORKING_DIR
/account.acc"
]
;
then
mv
"
$WORKING_DIR
/account.acc"
"
$WORKING_DIR
/account.key"
mv
"
$
LE_
WORKING_DIR
/account.acc"
"
$
LE_
WORKING_DIR
/account.key"
fi
fi
installcronjob
installcronjob
...
@@ -1085,15 +1125,13 @@ uninstall() {
...
@@ -1085,15 +1125,13 @@ uninstall() {
uninstallcronjob
uninstallcronjob
_initpath
_initpath
if
[
-f
"/usr/local/bin/le.sh"
]
;
then
_profile
=
"
$(
_detect_profile
)
"
_info
"Removing /usr/local/bin/le.sh"
if
[
"
$_profile
"
]
;
then
if
$SUDO
rm
-f
/usr/local/bin/le.sh
;
then
sed
-i
/le.env/d
"
$_profile
"
$SUDO
rm
-f
/usr/local/bin/le
fi
fi
fi
rm
-f
$WORKING_DIR
/le
rm
-f
$WORKING_DIR
/le.sh
rm
-f
$
LE_
WORKING_DIR
/le.sh
_info
"The keys and certs are in
$WORKING_DIR
, you can remove them by yourself."
_info
"The keys and certs are in
$
LE_
WORKING_DIR
, you can remove them by yourself."
}
}
...
...
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