make the cli more click

This commit is contained in:
saces 2026-03-17 10:21:52 +01:00
parent c890c49c7b
commit 8fcf9b4785
2 changed files with 24 additions and 1 deletions

View file

@ -0,0 +1,19 @@
# Copyright (C) 2026 saces@c-base.org
# SPDX-License-Identifier: AGPL-3.0-only
from functools import partial, wraps
import click
def click_catch_exception(func=None, *, handle):
if not func:
return partial(click_catch_exception, handle=handle)
@wraps(func)
def wrapper(*args, **kwargs):
try:
return func(*args, **kwargs)
except handle as e:
raise click.ClickException(e)
return wrapper

View file

@ -2,11 +2,15 @@
# SPDX-License-Identifier: AGPL-3.0-only
import click
from pygomx import CliV0
import pygomx
from .click import click_catch_exception
@click.command()
@click.option("-u", "--url", "hs_url", metavar="url", help="homeserver url")
@click.option("-t", "--token", "token", metavar="token", help="access token")
@click_catch_exception(handle=(pygomx.errors.APIError))
def whoami(hs_url, token):
"""this token belongs to?"""
@ -15,4 +19,4 @@ def whoami(hs_url, token):
else:
cli = CliV0(hs_url, token)
print(cli.Whoami())
click.echo(cli.Whoami())