Add configuration file checker
This commit is contained in:
parent
dfa4359f23
commit
ec1c2508d2
2 changed files with 23 additions and 1 deletions
23
gogsmaker.py
23
gogsmaker.py
|
@ -9,6 +9,7 @@ import hmac
|
||||||
from hashlib import sha256
|
from hashlib import sha256
|
||||||
from threading import Thread
|
from threading import Thread
|
||||||
from functools import wraps
|
from functools import wraps
|
||||||
|
from termcolor import colored
|
||||||
from flask import Flask, request
|
from flask import Flask, request
|
||||||
from . import settings
|
from . import settings
|
||||||
|
|
||||||
|
@ -138,4 +139,24 @@ def view_root(payload, hook):
|
||||||
return 'OK\n', 200
|
return 'OK\n', 200
|
||||||
|
|
||||||
|
|
||||||
# TODO: @app.before_first_request settings checkup
|
@app.before_first_request # FIXME this should be run on startup...
|
||||||
|
def check_settings():
|
||||||
|
''' Check the supplied settings '''
|
||||||
|
if settings.DEBUG:
|
||||||
|
print(colored('WARNING! ', 'red', attrs=['bold'])
|
||||||
|
+ 'GogsMaker is running in DEBUG MODE, this is unsuitable for '
|
||||||
|
+ 'production environments!')
|
||||||
|
|
||||||
|
required_keys = ['name', 'url', 'targets', 'secret']
|
||||||
|
for hook_id, hook in enumerate(settings.HOOKS):
|
||||||
|
for key in required_keys:
|
||||||
|
if key not in hook:
|
||||||
|
if key == 'name':
|
||||||
|
descr = '#{}'.format(hook_id)
|
||||||
|
else:
|
||||||
|
descr = '{} (#{})'.format(hook['name'], hook_id)
|
||||||
|
|
||||||
|
print((colored('FATAL! ', 'red', attrs=['bold'])
|
||||||
|
+ 'Configuration error: hook {} lacks attribute {}.')
|
||||||
|
.format(descr, key))
|
||||||
|
sys.exit(1)
|
||||||
|
|
|
@ -4,3 +4,4 @@ itsdangerous==0.24
|
||||||
Jinja2==2.10
|
Jinja2==2.10
|
||||||
MarkupSafe==1.0
|
MarkupSafe==1.0
|
||||||
Werkzeug==0.14.1
|
Werkzeug==0.14.1
|
||||||
|
termcolor==1.1.0
|
||||||
|
|
Loading…
Reference in a new issue