31 lines
879 B
Python
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()) |