summaryrefslogtreecommitdiff
path: root/examples/bashcompletion/bashcompletion.py
blob: 8aaf1742be5afa109467cd05a71f4622e8bd0185 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
import click
import os

@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])

@click.group()
def group():
    pass

def list_users(ctx, args, incomplete):
    # Here you can generate completions dynamically
    users = ['bob', 'alice']
    return users

@group.command()
@click.argument("user", type=click.STRING, autocompletion=list_users)
def subcmd(user):
    click.echo('Chosen user is %s' % user)

cli.add_command(group)