#!/usr/bin/env python

from optparse import OptionParser
from dogu.server import set_server, start
try:
    from configparser import ConfigParser
except ImportError:
    from ConfigParser import ConfigParser

from os.path import isfile

parser = OptionParser()
parser.add_option("-a", "--app", dest="application",
                  help="application file, use it in debuggin application")
parser.add_option("-i", "--ini", dest="ini",
                  help="application ini setting")

(options, args) = parser.parse_args()


def main():
    if options.ini is None and options.application is None:
        parser.print_help()
        exit(-1)
    elif options.ini is not None and options.application is not None:
        parser.print_help()
        exit(-1)
    elif options.application is not None:
        try:
            module, app_name = options.application.split(':')
            app_module = __import__(module)

            app = getattr(app_module, app_name)

            if app is None:
                raise ValueError('Can not found application')

            server_setting = set_server(
                app=app,
                debug=True,
                keep_alive_timeout=40,
                workers=50
            )

            start([server_setting])
        except ImportError:
            print('Can not found module ')
        except ValueError as e:
            print('application must be format <module path>:<app variable>')
            print('\t' + str(e))

if __name__ == '__main__':
    main()
