-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathstart.py
58 lines (47 loc) · 1.79 KB
/
start.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
"""Main entry point into the MoonTracker application.
usage: start.py [-h] [-p PORT] [--prod]
optional arguments:
-h, --help show this help message and exit
-p PORT have Flask listen on the specified port number
[default: 5000]
--prod use production environment, as opposed to development
"""
import argparse
from moontracker.app import create_app
from moontracker.config import DevConfig, ProdConfig
from moontracker.extensions import db, socketio
def parse():
"""Parse system arguments."""
parser = argparse.ArgumentParser(description="Main entry point into \
the MoonTracker application")
parser.add_argument('-p', dest='port', action='store', default=5000,
type=int, help='have Flask listen on the specified \
port number [default: 5000]')
parser.add_argument('--prod', action='store_true', help='use production \
environment, as opposed to development')
return parser.parse_args()
def main():
"""Run the application with command line arguments."""
args = parse()
config = ProdConfig if args.prod else DevConfig
config.set_recaptcha_keys()
app = create_app(config)
db.create_all()
certfile = "/etc/letsencrypt/archive/moontracker.xyz/fullchain1.pem"
keyfile = "/etc/letsencrypt/archive/moontracker.xyz/privkey1.pem"
if not args.prod:
socketio.run(
app,
host='0.0.0.0',
port=args.port,
use_reloader=False)
else:
socketio.run(
app,
host='0.0.0.0',
port=args.port,
use_reloader=False,
certfile=certfile,
keyfile=keyfile)
if __name__ == '__main__':
main()