diff options
Diffstat (limited to 'examples')
-rw-r--r-- | examples/bashcompletion/README | 12 | ||||
-rw-r--r-- | examples/bashcompletion/bashcompletion.py | 38 | ||||
-rw-r--r-- | examples/bashcompletion/setup.py | 15 |
3 files changed, 65 insertions, 0 deletions
diff --git a/examples/bashcompletion/README b/examples/bashcompletion/README new file mode 100644 index 0000000..f8a0d51 --- /dev/null +++ b/examples/bashcompletion/README @@ -0,0 +1,12 @@ +$ bashcompletion + + bashcompletion is a simple example of an application that + tries to autocomplete commands, arguments and options. + + This example requires Click 2.0 or higher. + +Usage: + + $ pip install --editable . + $ eval "$(_BASHCOMPLETION_COMPLETE=source bashcompletion)" + $ bashcompletion --help diff --git a/examples/bashcompletion/bashcompletion.py b/examples/bashcompletion/bashcompletion.py new file mode 100644 index 0000000..0a8d4d9 --- /dev/null +++ b/examples/bashcompletion/bashcompletion.py @@ -0,0 +1,38 @@ +import click +import os +from netifaces import interfaces, ifaddresses, AF_INET + +@click.group() +def cli(): + pass + +def get_env_vars(ctx, args, incomplete): + return os.environ.keys() + +@cli.command() +@click.argument("envvar", type=click.STRING, autocompletion=get_env_vars) +def cmd1(envvar): + click.echo('Environment variable: %s' % envvar) + click.echo('Value: %s' % os.environ[envvar]) + +@cli.command() +def cmd3(): + pass + +@click.group() +def group(): + pass + +def ip4_addresses(): + ip_list = [] + for interface in interfaces(): + for link in ifaddresses(interface)[AF_INET]: + ip_list.append(link['addr']) + return ip_list + +@group.command() +@click.argument("ip", type=click.STRING, autocompletion=ip4_addresses) +def subcmd(ip): + click.echo('Chosen IP is %s' % color) + +cli.add_command(group) diff --git a/examples/bashcompletion/setup.py b/examples/bashcompletion/setup.py new file mode 100644 index 0000000..ad20081 --- /dev/null +++ b/examples/bashcompletion/setup.py @@ -0,0 +1,15 @@ +from setuptools import setup + +setup( + name='click-example-bashcompletion', + version='1.0', + py_modules=['bashcompletion'], + include_package_data=True, + install_requires=[ + 'click', + ], + entry_points=''' + [console_scripts] + bashcompletion=bashcompletion:cli + ''', +) |