click-shell

An extension to click that easily turns your click app into a shell utility


License
BSD-3-Clause
Install
pip install click-shell==0.3

Documentation

click-shell

Build status Quality Gate Status Documentation Status

click-shell is an extension to click that easily turns your click app into a shell utility. It is built on top of the built in python cmd module, with modifications to make it work with click.

Features

  • Adds a "shell" mode with command completion to any click app
  • Just a one line change for most click apps

Usage

Simply replace @click.group with @click_shell.shell on the root level command:

import click
from click_shell import shell

# @click.group()  # no longer
@shell(prompt='my-app > ', intro='Starting my app...')
def my_app():
    pass

@my_app.command()
def testcommand():
    click.echo("testcommand is running")

# more commands

if __name__ == '__main__':
    my_app()

When run, you should expect an output like so:

$ python my_app.py
Starting my app...
my-app > testcommand
testcommand is running
my-app >

Note

It should be noted that this decorator only alters functionality if no arguments are passed on the command line. If you try to run a command directly (like python my_app.py the_command in the above example), your app will function identically to how it did before.

For more advanced usage, check out our docs at https://click-shell.readthedocs.io/