From d000abfaec792f3ced8396cdf3efac92bc72c25d Mon Sep 17 00:00:00 2001 From: KKlochko Date: Tue, 12 Dec 2023 18:44:26 +0200 Subject: [PATCH] Add the CLI to start the server. --- notification_server/cli.py | 48 +++++++++++++++++++++++++++++++++++++ notification_server/main.py | 11 +++++---- 2 files changed, 55 insertions(+), 4 deletions(-) create mode 100644 notification_server/cli.py diff --git a/notification_server/cli.py b/notification_server/cli.py new file mode 100644 index 0000000..d261aa4 --- /dev/null +++ b/notification_server/cli.py @@ -0,0 +1,48 @@ +############################################################################### +# Copyright (C) 2023 Kostiantyn Klochko # +# # +# This file is part of notification-server. # +# # +# notification-server is free software: you can redistribute it and/or modify # +# it under the terms of the GNU Affero General Public License as published by # +# the Free Software Foundation, either version 3 of the License, or (at your # +# option) any later version. # +# # +# notification-server is distributed in the hope that it will be useful, but # +# WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY # +# or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Affero General Public # +# License for more details. # +# # +# You should have received a copy of the GNU Affero General Public License # +# along with notification-server. If not, see .# +############################################################################### + +import asyncio +import typer +from notification_server.server import Server + +cli_app = typer.Typer(rich_markup_mode="rich") +notify = typer.Typer() + + +@cli_app.command() +def up( + ip: str = typer.Option( + "127.0.0.1", "--ip", "-i", + help="The server's ip.", + ), + port: int = typer.Option( + 5555, "--port", "-p", + help="The server's port to notify [b]clients[/].", + ), + producer_port: int = typer.Option( + 5554, "--producer-port", "-l", + help="The server's port to listen [b]producers[/].", + ) +): + """ + This command [b]start[/] the [yellow b]server[/] which receives notifications and sends to the clients. + """ + + server = Server(ip, port, producer_port) + asyncio.run(server.up()) diff --git a/notification_server/main.py b/notification_server/main.py index df6bc8d..193e06a 100644 --- a/notification_server/main.py +++ b/notification_server/main.py @@ -17,10 +17,13 @@ # along with notification-server. If not, see .# ############################################################################### -import asyncio -from .server import Server +from notification_server.cli import cli_app + + +def main(): + cli_app() + if __name__ == '__main__': - server = Server('127.0.0.1', 5555, 5554) - asyncio.run(server.up()) + main()