#!/usr/bin/env python3 """aiohttp based webserver running a cyberschuessel app""" import argparse import logging import os import jinja2 import aiohttp_jinja2 from aiohttp import web from schuessel import Schuessel async def init_app(): """Create and initialize a new cyberschuessel aiohttp app""" app = web.Application() app.on_shutdown.append(shutdown) schuessel = Schuessel() app['schuessel'] = schuessel # aiohttp_jinja2.setup(app, # loader=jinja2.PackageLoader('cyberschuessel', # 'templates')) template_path = os.path.join(os.path.dirname(os.path.realpath(__file__)), "templates") aiohttp_jinja2.setup(app, loader=jinja2.FileSystemLoader(template_path)) app.router.add_get('/', schuessel.handler) return app async def shutdown(app): """shutdown a cyberschuessel aiohttp app""" await app['schuessel'].close_all() def main(args): """init and run a cyberschuessel aiohttp app""" logging.basicConfig(level=logging.DEBUG) app = init_app() web.run_app(app, port=args.port) if __name__ == '__main__': parser = argparse.ArgumentParser(description="aiohttp server example") parser.add_argument('--port', type=int, default=80) main(parser.parse_args())