sort out cli

added `whitelist import` command which adds all current inboxes to the whitelist
added `config list`
fixed a few errors
This commit is contained in:
Izalia Mae 2022-12-04 01:09:45 -05:00
parent f7e1c6b0b8
commit 3b89aa5e84

View file

@ -81,13 +81,15 @@ def cli_run():
# todo: add config default command for resetting config key # todo: add config default command for resetting config key
@cli.group('config', invoke_without_command=True) @cli.group('config')
@click.pass_context def cli_config():
def cli_config(ctx): 'Manage the relay config'
'List the current relay config' pass
if ctx.invoked_subcommand:
return @cli_config.command('list')
def cli_config_list():
'List the current relay config'
click.echo('Relay Config:') click.echo('Relay Config:')
@ -321,14 +323,16 @@ def cli_software_ban(name, fetch_nodeinfo):
if fetch_nodeinfo: if fetch_nodeinfo:
nodeinfo = asyncio.run(app.client.fetch_nodeinfo(name)) nodeinfo = asyncio.run(app.client.fetch_nodeinfo(name))
if not software: if not nodeinfo:
click.echo(f'Failed to fetch software name from domain: {name}') click.echo(f'Failed to fetch software name from domain: {name}')
if config.ban_software(nodeinfo.swname): name = nodeinfo.sw_name
app.config.save()
return click.echo(f'Banned software: {nodeinfo.swname}')
click.echo(f'Software already banned: {nodeinfo.swname}') if app.config.ban_software(name):
app.config.save()
return click.echo(f'Banned software: {name}')
click.echo(f'Software already banned: {name}')
@cli_software.command('unban') @cli_software.command('unban')
@ -343,7 +347,7 @@ def cli_software_unban(name, fetch_nodeinfo):
for name in relay_software_names: for name in relay_software_names:
app.config.unban_software(name) app.config.unban_software(name)
config.save() app.config.save()
return click.echo('Unbanned all relay software') return click.echo('Unbanned all relay software')
if fetch_nodeinfo: if fetch_nodeinfo:
@ -352,12 +356,13 @@ def cli_software_unban(name, fetch_nodeinfo):
if not nodeinfo: if not nodeinfo:
click.echo(f'Failed to fetch software name from domain: {name}') click.echo(f'Failed to fetch software name from domain: {name}')
if app.config.unban_software(nodeinfo.swname): name = nodeinfo.sw_name
if app.config.unban_software(name):
app.config.save() app.config.save()
return click.echo(f'Unbanned software: {nodeinfo.swname}') return click.echo(f'Unbanned software: {name}')
click.echo(f'Software wasn\'t banned: {nodeinfo.swname}')
click.echo(f'Software wasn\'t banned: {name}')
@cli.group('whitelist') @cli.group('whitelist')
@ -368,6 +373,8 @@ def cli_whitelist():
@cli_whitelist.command('list') @cli_whitelist.command('list')
def cli_whitelist_list(): def cli_whitelist_list():
'List all the instances in the whitelist'
click.echo('Current whitelisted domains') click.echo('Current whitelisted domains')
for domain in app.config.whitelist: for domain in app.config.whitelist:
@ -403,6 +410,14 @@ def cli_whitelist_remove(instance):
click.echo(f'Removed instance from the whitelist: {instance}') click.echo(f'Removed instance from the whitelist: {instance}')
@cli_whitelist.command('import')
def cli_whitelist_import():
'Add all current inboxes to the whitelist'
for domain in app.database.hostnames:
cli_whitelist_add.callback(domain)
def main(): def main():
cli(prog_name='relay') cli(prog_name='relay')