#!/usr/bin/env python
import os
import sys

import django
from django.core.management import execute_from_command_line

possible_topdir = os.path.normpath(os.path.join(os.path.abspath(sys.argv[0]),
                                                os.pardir,
                                                os.pardir,
                                                os.pardir))


if os.path.exists(os.path.join(possible_topdir, 'leonardo', '__init__.py')):
    sys.path.insert(0, possible_topdir)
    sys.path.insert(0, os.path.normpath(os.path.join(possible_topdir, os.pardir)))

import logging
import os
import sys
from os.path import abspath, dirname, join, normpath

import django
import django.core.handlers.wsgi

import tornado
import tornado.ioloop
import tornado.httpserver
import tornado.web
import tornado.wsgi
from tornado.options import define, parse_command_line


define('port', type=int, default=8080)
parse_command_line()


def main():

    logger = logging.getLogger(__name__)
    wsgi_app = tornado.wsgi.WSGIContainer(
        django.core.handlers.wsgi.WSGIHandler())
    django.setup()
    tornado_app = tornado.web.Application(
        [
            ('.*', tornado.web.FallbackHandler, dict(fallback=wsgi_app)),
        ], debug=True)
    logger.info("Tornado server starting...")
    server = tornado.httpserver.HTTPServer(tornado_app)
    server.listen(80)
    tornado.ioloop.IOLoop.instance().start()

if __name__ == '__main__':
    os.environ['DJANGO_SETTINGS_MODULE'] = 'leonardo.settings'
    main()
