You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
stacosys/app/run.py

86 lines
2.2 KiB
Python

#!/usr/bin/python
# -*- coding: UTF-8 -*-
import os
import sys
import logging
from flask.ext.cors import CORS
# add current path and parent path to syspath
current_path = os.path.dirname(__file__)
parent_path = os.path.abspath(os.path.join(current_path, os.path.pardir))
paths = [current_path, parent_path]
for path in paths:
if path not in sys.path:
sys.path.insert(0, path)
# more imports
import config
from app.services import database
from app.services import processor
from app.controllers import api
from app.controllers import form
from app.controllers import report
from app.controllers import mail
from app import app
# configure logging
def configure_logging(level):
root_logger = logging.getLogger()
root_logger.setLevel(level)
ch = logging.StreamHandler()
ch.setLevel(level)
# create formatter
formatter = logging.Formatter(
'[%(asctime)s] %(name)s %(levelname)s %(message)s')
# add formatter to ch
ch.setFormatter(formatter)
# add ch to logger
root_logger.addHandler(ch)
logging_level = (20, 10)[config.DEBUG]
configure_logging(logging_level)
logger = logging.getLogger(__name__)
# initialize database
database.setup()
#from app.helpers.hashing import md5
#from app.models.comment import Comment
#for comment in Comment.select():
# email = comment.author_email.strip().lower()
# if email:
# comment.author_gravatar = md5(email)
# comment.author_email = ''
# comment.save()
# routes
logger.debug('imported: %s ' % api.__name__)
logger.debug('imported: %s ' % mail.__name__)
# start processor
template_path = os.path.abspath(os.path.join(current_path, 'templates'))
processor.start(template_path)
# less feature in private mode
if not config.PRIVATE:
# enable CORS
cors = CORS(app, resources={r"/comments/*": {"origins": "*"}})
from app.controllers import reader
logger.debug('imported: %s ' % reader.__name__)
# tune logging level
if not config.DEBUG:
logging.getLogger('app.cors').level = logging.WARNING
logging.getLogger('werkzeug').level = logging.WARNING
logger.info("Start Stacosys application")
if __name__ == '__main__':
app.run(host=config.HTTP_ADDRESS,
port=config.HTTP_PORT,
debug=config.DEBUG, use_reloader=False)