From 26a00bff42a1481625e0ae60011e0139935ccd45 Mon Sep 17 00:00:00 2001 From: onyx-and-iris Date: Mon, 23 Mar 2026 20:35:59 +0000 Subject: [PATCH] add --version flag --- README.md | 1 + src/q3rcon_cli/cli.py | 18 ++++++++++++++---- src/q3rcon_cli/console.py | 2 +- 3 files changed, 16 insertions(+), 5 deletions(-) diff --git a/README.md b/README.md index 235e302..c130819 100644 --- a/README.md +++ b/README.md @@ -73,6 +73,7 @@ Usage: q3rcon-cli [OPTIONS] COMMAND ┏━ Options ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓ ┃ -i, --interactive Whether to start in interactive mode (defaults to false) ┃ +┃ -v, --version Show the version and exit ┃ ┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛ ┏━ Connection options ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓ diff --git a/src/q3rcon_cli/cli.py b/src/q3rcon_cli/cli.py index f8484b1..7f4ca02 100644 --- a/src/q3rcon_cli/cli.py +++ b/src/q3rcon_cli/cli.py @@ -4,6 +4,7 @@ from clypi import Command, Spinner, arg from typing_extensions import override from . import console +from .__about__ import __version__ from .commands import ( Fastrestart, Gametype, @@ -57,9 +58,18 @@ class Q3rconCli(Command): short='i', help='Whether to start in interactive mode (defaults to false)', ) + version: bool = arg( + False, + short='v', + help='Show the version and exit', + ) @override async def run(self): + if self.version: + print(f'q3rcon-cli version: {clypi.style(__version__, fg="green")}') + return + if self.interactive: await self.run_interactive() else: @@ -68,7 +78,7 @@ class Q3rconCli(Command): async def run_interactive(self): print( clypi.style('Entering interactive mode. Type', fg='blue'), - clypi.style("'Q'", fg='red'), + clypi.style("'Q'", fg='yellow'), clypi.style('to quit.', fg='blue'), ) @@ -99,14 +109,14 @@ class Q3rconCli(Command): fragment_read_timeout=fragment_read_timeout, ) as client: try: - if response := await client.send_command( + response = await client.send_command( command, interpret=interpret - ): - console.out.print_response(response) + ) except TimeoutError: console.err.print( f"Timeout waiting for response for command: '{command}'" ) + console.out.print_response(response) def main(): diff --git a/src/q3rcon_cli/console.py b/src/q3rcon_cli/console.py index d94ef8e..e5b79e8 100644 --- a/src/q3rcon_cli/console.py +++ b/src/q3rcon_cli/console.py @@ -52,7 +52,7 @@ class OutConsole(Console): def print_response(self, response: str): response = self._remove_colour_codes(response).removeprefix('print\n') - cprint(f'\n{response}\n', fg=self.style) + cprint(response, fg=self.style) def print_status(self, response: str): _slots = []