diff --git a/aioworkers_aiohttp/__init__.py b/aioworkers_aiohttp/__init__.py index 846f823..295bba8 100644 --- a/aioworkers_aiohttp/__init__.py +++ b/aioworkers_aiohttp/__init__.py @@ -4,6 +4,8 @@ from aioworkers.core.plugin import Plugin +from .server import WebServer + try: from .version import __version__ @@ -36,5 +38,5 @@ def parse_known_args( namespace: argparse.Namespace, ) -> Tuple[argparse.Namespace, Iterable[str]]: if namespace.port: - self._config['http.port'] = namespace.port + WebServer.set_port(namespace.port) return namespace, args diff --git a/aioworkers_aiohttp/server.py b/aioworkers_aiohttp/server.py index bba6cba..e782c11 100644 --- a/aioworkers_aiohttp/server.py +++ b/aioworkers_aiohttp/server.py @@ -4,12 +4,20 @@ class WebServer(SocketServer): + port = None + + @classmethod + def set_port(cls, port: int) -> None: + cls.port = port + def __init__(self, *args, **kwargs): super().__init__(*args, **kwargs) self._runner = None self._kwargs = {} def set_config(self, config): + if self.port: + config = config.new_child(port=self.port) super().set_config(config) access_log_cls = self.config.get('access_log.cls') if access_log_cls: