def main():

    tornado.options.parse_command_line()
    settings = Settings.settings()

    # set run mode
    DatabaseBuilder.run_mode = options.runmod
    OssUploadService.run_mode = options.runmod
    MemCacheFactory.run_mode = options.runmod
    settings["ui_modules"] = Widgets.widgets
    handlers = Routes.get_handlers()
    # public dir routes
    handlers = list(handlers or [])
    # file_list = [os.path.normcase(f) for f in os.listdir(public_path)]
    # for public_sub_dir in file_list:
    #     if os.path.isfile(os.path.join(public_path, public_sub_dir)):
    #         handlers = [(r"/("+public_sub_dir+r")",
    #                      StaticFileHandler,
    #                      dict(path=public_path))] + handlers
    #     else:s
    #         handlers = [(r"/"+public_sub_dir+"/(.*)",
    #                      StaticFileHandler,
    #                      dict(path=public_path+r'/'+public_sub_dir+r'/'))] + handlers

    application = tornado.web.Application(handlers=handlers, **settings)

    global http_server
    http_server = tornado.httpserver.HTTPServer(application)
    
    logging.info("Web application is running. Port:"+str(options.port))
    http_server.listen(options.port)

    signal.signal(signal.SIGTERM, sig_handler)
    signal.signal(signal.SIGINT, sig_handler)

    tornado.ioloop.IOLoop.instance().start()
 def static_url_on_ie(cls, path):
     version_hash = StaticFileHandler.get_version(Settings.settings(), path)
     return '%s?v=%s' % ('/s/'+path, version_hash)