This repository has been archived on 2022-07-14. You can view files and clone it, but cannot push or open issues or pull requests.
sh_gismo/src/gismo/main.py

31 lines
879 B
Python

import asyncio
from typing import Optional
from cpl_core.application import ApplicationABC, ApplicationBuilder
from gismo.application import Gismo
from gismo.startup import Startup
from modules.boot_log.boot_log_extension import BootLogExtension
class Main:
def __init__(self):
self._gismo: Optional[Gismo] = None
async def main(self):
app_builder = ApplicationBuilder(Gismo)
app_builder.use_extension(BootLogExtension)
app_builder.use_startup(Startup)
self._gismo: Gismo = await app_builder.build_async()
await self._gismo.run_async()
async def stop(self):
await self._gismo.stop_async()
if __name__ == '__main__':
main = Main()
ml = asyncio.get_event_loop()
try:
ml.run_until_complete(main.main())
except KeyboardInterrupt:
ml.run_until_complete(main.stop())