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()) |