From 861f48875fc8742a16f6c388e36d1a1283fec6af Mon Sep 17 00:00:00 2001 From: Michael Woods Date: Tue, 18 Feb 2025 22:31:32 -0500 Subject: [PATCH] Changes to end handling. --- src/packetserver/client/cli/__init__.py | 16 +++++++++++++--- 1 file changed, 13 insertions(+), 3 deletions(-) diff --git a/src/packetserver/client/cli/__init__.py b/src/packetserver/client/cli/__init__.py index 7a5e121..2aa354f 100644 --- a/src/packetserver/client/cli/__init__.py +++ b/src/packetserver/client/cli/__init__.py @@ -88,6 +88,13 @@ def cli(ctx, conf, server, agwpe, port, callsign): ctx.obj['bbs'] = server ctx.obj['db'] = db +@cli.result_callback() +@click.pass_context +def cli_callback(result, ctx): + ctx.obj['client'].stop() + sys.exit(result) + + @click.command() @click.argument('username', required=False, default='') @click.option('--list-users', '-l', is_flag=True, default=False, help="If set, downloads list of all users.") @@ -100,11 +107,11 @@ def user(ctx, list_users, output_format, username): # validate args if list_users and (username.strip() != ""): click.echo("Can't specify a username while listing all users.", err=True) - sys.exit(1) + return 1 if not list_users and (username.strip() == ""): click.echo("Must provide either a username or --list-users flag.", err=True) - sys.exit(1) + return 1 output_objects = [] try: @@ -114,9 +121,12 @@ def user(ctx, list_users, output_format, username): output_objects.append(users.get_user_by_username(client, ctx.obj['bbs'], username)) except Exception as e: click.echo(str(e), err=True) - sys.exit(1) + return 1 + finally: + client.stop() click.echo(format_list_dicts([x.pretty_dict() for x in output_objects], output_format=output_format.lower())) + return 1 cli.add_command(user)