pip install cliff
mkdir mycommandtool
cd mycommandtool
python -m venv venv
venv\Scripts\activate.bat
source venv/bin/activate
python
from cliff.command import Command
class Greeting(Command):
"Print a greeting message"
def take_action(self, parsed_args):
self.app.stdout.write("Hello, World!
")
class MyCommandTool(Command):
"My custom command line tool"
def __init__(self, app, app_args):
super(MyCommandTool, self).__init__(app, app_args)
self.command = Greeting(self.app, self.app_args)
def get_parser(self, prog_name):
parser = super(MyCommandTool, self).get_parser(prog_name)
subparsers = parser.add_subparsers()
self.command.get_parser(subparsers)
return parser
def take_action(self, parsed_args):
self.command.run(parsed_args)
def main(argv=sys.argv[1:]):
my_tool = MyCommandTool(None, None)
return my_tool.run(argv)
if __name__ == '__main__':
sys.exit(main())
python
from setuptools import setup, find_packages
setup(
name='mycommandtool',
version='0.1',
packages=find_packages(),
include_package_data=True,
install_requires=[
'cliff',
],
entry_points={
'console_scripts': [
'mycommand = mycommandtool:main'
]
},
)
pip install -e .
mycommand greeting