mirror of
https://github.com/certbot/certbot.git
synced 2026-05-28 04:34:11 -04:00
letsencrypt.py as setuptools console script
This commit is contained in:
parent
d56ec3c1da
commit
35c4cbd438
4 changed files with 126 additions and 122 deletions
121
letsencrypt.py
121
letsencrypt.py
|
|
@ -1,121 +0,0 @@
|
|||
#!/usr/bin/env python
|
||||
|
||||
# This file parses the command line and calls the appropriate functions
|
||||
|
||||
import getopt
|
||||
import os
|
||||
import sys
|
||||
|
||||
from letsencrypt.client import client
|
||||
from letsencrypt.client import display
|
||||
from letsencrypt.client.CONFIG import ACME_SERVER
|
||||
|
||||
def main():
|
||||
# Check to make sure user is root
|
||||
if not os.geteuid() == 0:
|
||||
sys.exit("\nOnly root can run letsencrypt.\n")
|
||||
# Parse options
|
||||
try:
|
||||
opts, args = getopt.getopt(sys.argv[1:], "", ["text", "test",
|
||||
"view-checkpoints",
|
||||
"privkey=", "csr=",
|
||||
"server=", "rollback=",
|
||||
"revoke", "agree-eula",
|
||||
"redirect",
|
||||
"no-redirect",
|
||||
"help"])
|
||||
except getopt.GetoptError as err:
|
||||
# print help info and exit
|
||||
print str(err)
|
||||
usage()
|
||||
sys.exit(2)
|
||||
|
||||
server = None
|
||||
csr = None
|
||||
privkey = None
|
||||
curses = True
|
||||
names = args
|
||||
flag_revoke = False
|
||||
redirect = None
|
||||
eula = False
|
||||
|
||||
for o, a in opts:
|
||||
if o == "--text":
|
||||
curses = False
|
||||
elif o == "--csr":
|
||||
csr = a
|
||||
elif o == "--privkey":
|
||||
privkey = a
|
||||
elif o == "--server":
|
||||
server = a
|
||||
elif o == "--rollback":
|
||||
from letsencrypt.client import configurator, logger
|
||||
logger.setLogger(logger.FileLogger(sys.stdout))
|
||||
logger.setLogLevel(logger.INFO)
|
||||
config = configurator.Configurator()
|
||||
config.rollback_checkpoints(a)
|
||||
config.restart()
|
||||
sys.exit(0)
|
||||
elif o == "--view-checkpoints":
|
||||
from letsencrypt.client import configurator, logger
|
||||
logger.setLogger(logger.FileLogger(sys.stdout))
|
||||
logger.setLogLevel(logger.INFO)
|
||||
config = configurator.Configurator()
|
||||
config.display_checkpoints()
|
||||
sys.exit(0)
|
||||
elif o == "--revoke":
|
||||
# Do Stuff
|
||||
flag_revoke = True
|
||||
elif o == "--redirect":
|
||||
redirect = True
|
||||
elif o == "--no-redirect":
|
||||
redirect = False
|
||||
elif o == "--agree-eula":
|
||||
eula = True
|
||||
elif o == "--help":
|
||||
print_options()
|
||||
elif o == "--test":
|
||||
#put any temporary tests in here
|
||||
continue
|
||||
|
||||
if curses:
|
||||
display.setDisplay(display.NcursesDisplay())
|
||||
else:
|
||||
display.setDisplay(display.FileDisplay(sys.stdout))
|
||||
|
||||
if not server:
|
||||
server = ACME_SERVER
|
||||
|
||||
c = client.Client(server, csr, privkey, curses)
|
||||
if flag_revoke:
|
||||
c.list_certs_keys()
|
||||
else:
|
||||
c.authenticate(args, redirect, eula)
|
||||
|
||||
def usage():
|
||||
s = "Available options: --text, --privkey=, --csr=, --server=, "
|
||||
s += "--rollback=, --view-checkpoints, --revoke, --agree-eula, --redirect,"
|
||||
s += " --no-redirect, --help"
|
||||
print str
|
||||
|
||||
def print_options():
|
||||
print "\nsudo ./letsencrypt.py (default authentication mode using pythondialog)"
|
||||
options = [ "privkey= (specify privatekey file to use to generate the certificate)",
|
||||
"csr= (Use a specific CSR. If this is specified, privkey " +
|
||||
"must also be specified with the correct private key for the CSR)",
|
||||
"server (list the ACME CA server address)",
|
||||
"revoke (revoke a certificate)",
|
||||
"view-checkpoints (Used to view available checkpoints and " +
|
||||
"see what configuration changes have been made)",
|
||||
"rollback=X (Revert the configuration X number of checkpoints)",
|
||||
"redirect (Automatically redirect all HTTP traffic to " +
|
||||
"HTTPS for the newly authenticated vhost)",
|
||||
"no-redirect (Skip the HTTPS redirect question, " +
|
||||
"allowing both HTTP and HTTPS)",
|
||||
"agree-eula (Skip the end user agreement screen)" ]
|
||||
for o in options:
|
||||
print " --%s" % o
|
||||
sys.exit(0)
|
||||
|
||||
if __name__ == "__main__":
|
||||
main()
|
||||
1
letsencrypt.py
Symbolic link
1
letsencrypt.py
Symbolic link
|
|
@ -0,0 +1 @@
|
|||
letsencrypt/scripts/main.py
|
||||
0
letsencrypt/scripts/__init__.py
Normal file
0
letsencrypt/scripts/__init__.py
Normal file
121
letsencrypt/scripts/main.py
Executable file
121
letsencrypt/scripts/main.py
Executable file
|
|
@ -0,0 +1,121 @@
|
|||
#!/usr/bin/env python
|
||||
|
||||
# This file parses the command line and calls the appropriate functions
|
||||
|
||||
import getopt
|
||||
import os
|
||||
import sys
|
||||
|
||||
from letsencrypt.client import client
|
||||
from letsencrypt.client import display
|
||||
from letsencrypt.client.CONFIG import ACME_SERVER
|
||||
|
||||
def main():
|
||||
# Check to make sure user is root
|
||||
if not os.geteuid() == 0:
|
||||
sys.exit("\nOnly root can run letsencrypt.\n")
|
||||
# Parse options
|
||||
try:
|
||||
opts, args = getopt.getopt(sys.argv[1:], "", ["text", "test",
|
||||
"view-checkpoints",
|
||||
"privkey=", "csr=",
|
||||
"server=", "rollback=",
|
||||
"revoke", "agree-eula",
|
||||
"redirect",
|
||||
"no-redirect",
|
||||
"help"])
|
||||
except getopt.GetoptError as err:
|
||||
# print help info and exit
|
||||
print str(err)
|
||||
usage()
|
||||
sys.exit(2)
|
||||
|
||||
server = None
|
||||
csr = None
|
||||
privkey = None
|
||||
curses = True
|
||||
names = args
|
||||
flag_revoke = False
|
||||
redirect = None
|
||||
eula = False
|
||||
|
||||
for o, a in opts:
|
||||
if o == "--text":
|
||||
curses = False
|
||||
elif o == "--csr":
|
||||
csr = a
|
||||
elif o == "--privkey":
|
||||
privkey = a
|
||||
elif o == "--server":
|
||||
server = a
|
||||
elif o == "--rollback":
|
||||
from letsencrypt.client import configurator, logger
|
||||
logger.setLogger(logger.FileLogger(sys.stdout))
|
||||
logger.setLogLevel(logger.INFO)
|
||||
config = configurator.Configurator()
|
||||
config.rollback_checkpoints(a)
|
||||
config.restart()
|
||||
sys.exit(0)
|
||||
elif o == "--view-checkpoints":
|
||||
from letsencrypt.client import configurator, logger
|
||||
logger.setLogger(logger.FileLogger(sys.stdout))
|
||||
logger.setLogLevel(logger.INFO)
|
||||
config = configurator.Configurator()
|
||||
config.display_checkpoints()
|
||||
sys.exit(0)
|
||||
elif o == "--revoke":
|
||||
# Do Stuff
|
||||
flag_revoke = True
|
||||
elif o == "--redirect":
|
||||
redirect = True
|
||||
elif o == "--no-redirect":
|
||||
redirect = False
|
||||
elif o == "--agree-eula":
|
||||
eula = True
|
||||
elif o == "--help":
|
||||
print_options()
|
||||
elif o == "--test":
|
||||
#put any temporary tests in here
|
||||
continue
|
||||
|
||||
if curses:
|
||||
display.setDisplay(display.NcursesDisplay())
|
||||
else:
|
||||
display.setDisplay(display.FileDisplay(sys.stdout))
|
||||
|
||||
if not server:
|
||||
server = ACME_SERVER
|
||||
|
||||
c = client.Client(server, csr, privkey, curses)
|
||||
if flag_revoke:
|
||||
c.list_certs_keys()
|
||||
else:
|
||||
c.authenticate(args, redirect, eula)
|
||||
|
||||
def usage():
|
||||
s = "Available options: --text, --privkey=, --csr=, --server=, "
|
||||
s += "--rollback=, --view-checkpoints, --revoke, --agree-eula, --redirect,"
|
||||
s += " --no-redirect, --help"
|
||||
print str
|
||||
|
||||
def print_options():
|
||||
print "\nsudo ./letsencrypt.py (default authentication mode using pythondialog)"
|
||||
options = [ "privkey= (specify privatekey file to use to generate the certificate)",
|
||||
"csr= (Use a specific CSR. If this is specified, privkey " +
|
||||
"must also be specified with the correct private key for the CSR)",
|
||||
"server (list the ACME CA server address)",
|
||||
"revoke (revoke a certificate)",
|
||||
"view-checkpoints (Used to view available checkpoints and " +
|
||||
"see what configuration changes have been made)",
|
||||
"rollback=X (Revert the configuration X number of checkpoints)",
|
||||
"redirect (Automatically redirect all HTTP traffic to " +
|
||||
"HTTPS for the newly authenticated vhost)",
|
||||
"no-redirect (Skip the HTTPS redirect question, " +
|
||||
"allowing both HTTP and HTTPS)",
|
||||
"agree-eula (Skip the end user agreement screen)" ]
|
||||
for o in options:
|
||||
print " --%s" % o
|
||||
sys.exit(0)
|
||||
|
||||
if __name__ == "__main__":
|
||||
main()
|
||||
5
setup.py
5
setup.py
|
|
@ -1,5 +1,7 @@
|
|||
#!/usr/bin/env python
|
||||
from setuptools import setup
|
||||
|
||||
|
||||
setup(
|
||||
name="letsencrypt",
|
||||
version="0.1",
|
||||
|
|
@ -10,6 +12,7 @@ setup(
|
|||
packages=[
|
||||
'letsencrypt',
|
||||
'letsencrypt.client',
|
||||
'letsencrypt.scripts',
|
||||
],
|
||||
install_requires=[
|
||||
#'dialog',
|
||||
|
|
@ -23,7 +26,7 @@ setup(
|
|||
],
|
||||
entry_points={
|
||||
'console_scripts': [
|
||||
'letsencrypt = letsencrypt.client.client:authenticate'
|
||||
'letsencrypt = letsencrypt.scripts.main:main'
|
||||
]
|
||||
},
|
||||
)
|
||||
|
|
|
|||
Loading…
Reference in a new issue