702d080a1e
Google BK
25 lines
676 B
Python
25 lines
676 B
Python
from injector import inject, singleton
|
|
from typing import List
|
|
|
|
from .config import Startable, Config, Setting
|
|
from .logger import getLogger
|
|
|
|
logger = getLogger(__name__)
|
|
|
|
|
|
@singleton
|
|
class Starter(Startable):
|
|
@inject
|
|
def __init__(self, config: Config, startables: List[Startable]):
|
|
self.startables = startables
|
|
self.config = config
|
|
|
|
async def start(self):
|
|
logger.overrideLevel(self.config.get(Setting.CONSOLE_LOG_LEVEL), self.config.get(Setting.LOG_LEVEL))
|
|
for startable in self.startables:
|
|
await startable.start()
|
|
|
|
async def stop(self):
|
|
for startable in self.startables:
|
|
await startable.stop()
|