mirror of
https://github.com/craigerl/aprsd.git
synced 2024-09-27 15:46:53 -04:00
Hemna
cd62db95c1
This patch updates the ouput of the list-plugins command. This also adds the ability to show the available plugins to install that are published packages on pypi.org. This also shows the list of installed packages from pypi.org
37 lines
1.7 KiB
Python
37 lines
1.7 KiB
Python
import click
|
|
import click_completion
|
|
|
|
from aprsd.aprsd import cli
|
|
|
|
|
|
CONTEXT_SETTINGS = dict(help_option_names=["-h", "--help"])
|
|
|
|
|
|
@cli.group(help="Click Completion subcommands", context_settings=CONTEXT_SETTINGS)
|
|
@click.pass_context
|
|
def completion(ctx):
|
|
pass
|
|
|
|
|
|
# show dumps out the completion code for a particular shell
|
|
@completion.command(help="Show completion code for shell", name="show")
|
|
@click.option("-i", "--case-insensitive/--no-case-insensitive", help="Case insensitive completion")
|
|
@click.argument("shell", required=False, type=click_completion.DocumentedChoice(click_completion.core.shells))
|
|
def show(shell, case_insensitive):
|
|
"""Show the click-completion-command completion code"""
|
|
extra_env = {"_CLICK_COMPLETION_COMMAND_CASE_INSENSITIVE_COMPLETE": "ON"} if case_insensitive else {}
|
|
click.echo(click_completion.core.get_code(shell, extra_env=extra_env))
|
|
|
|
|
|
# install will install the completion code for a particular shell
|
|
@completion.command(help="Install completion code for a shell", name="install")
|
|
@click.option("--append/--overwrite", help="Append the completion code to the file", default=None)
|
|
@click.option("-i", "--case-insensitive/--no-case-insensitive", help="Case insensitive completion")
|
|
@click.argument("shell", required=False, type=click_completion.DocumentedChoice(click_completion.core.shells))
|
|
@click.argument("path", required=False)
|
|
def install(append, case_insensitive, shell, path):
|
|
"""Install the click-completion-command completion"""
|
|
extra_env = {"_CLICK_COMPLETION_COMMAND_CASE_INSENSITIVE_COMPLETE": "ON"} if case_insensitive else {}
|
|
shell, path = click_completion.core.install(shell=shell, path=path, append=append, extra_env=extra_env)
|
|
click.echo(f"{shell} completion installed in {path}")
|