Introduction:
$ pip install cliff
python
from cliff.app import App
from cliff.command import Command
class MyCommand(Command):
def take_action(self, parsed_args):
print("Hello, Cliff!")
class MyCLI(App):
def __init__(self):
super(MyCLI, self).__init__(
description='My awesome CLI app',
version='1.0',
command_manager='cliff.demo',
)
def initialize_app(self, argv):
self.LOG.debug('Initializing CLI application')
def prepare_to_run_command(self, cmd):
self.LOG.debug('Preparing to run CLI command')
def clean_up(self, cmd, result, err):
self.LOG.debug('Cleaning up after CLI command')
def build_option_parser(self, description, version, argparse_kwargs=None):
parser = super(MyCLI, self).build_option_parser(
description, version, argparse_kwargs
)
return parser
def configure_logging(self):
self.LOG.debug('Configuring logging')
def run(self, argv):
return super(MyCLI, self).run(argv)
def main(argv=sys.argv[1:]):
mycli_app = MyCLI()
return mycli_app.run(argv)
if __name__ == '__main__':
sys.exit(main(sys.argv[1:]))
python
class Greet(Command):
"Greet the user"
def get_parser(self, prog_name):
parser = super(Greet, self).get_parser(prog_name)
parser.add_argument('--name', default='World', help='name to greet')
return parser
def take_action(self, parsed_args):
print('Hello, {}!'.format(parsed_args.name))
$ python myapp.py greet --name Alice