summaryrefslogtreecommitdiff
path: root/examples/bashcompletion/bashcompletion.py
blob: f338c53110ea361852734270e68508bb6ad26dd8 (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
32
33
34
35
36
37
38
39
import click
import os

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


@cli.command()
@click.option('-c', '--count', type=click.INT, default=1)
@click.argument("first", type=click.STRING, autocompletion=["John", "Bob", "Fred"])
@click.argument("last", type=click.STRING, autocompletion=["Smith", "Simon", "Doe"])
def cmd1(count, first, last):
    for c in range(count):
        click.echo('Name: %s %s' % (first, last))

def get_env_vars(ctx, args, incomplete):
    return os.environ.keys()

@cli.command()
@click.argument("envvar", type=click.STRING, autocompletion=get_env_vars)
def cmd2(envvar):
    click.echo('Environment variable: %s' % envvar)
    click.echo('Value: %s' % os.environ[envvar])

@cli.command()
def cmd3():
    pass

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

@group.command()
@click.argument("color", type=click.STRING, autocompletion=['red', 'green', 'blue'])
def subcmd(color):
    click.echo('Color is: %s' % color)

cli.add_command(group)