diff --git a/my/__main__.py b/my/__main__.py new file mode 100644 index 0000000..6ac0aad --- /dev/null +++ b/my/__main__.py @@ -0,0 +1,30 @@ +class Modes: + HELLO = 'hello' + + +def parser(): + from argparse import ArgumentParser + p = ArgumentParser('Human Programming Interface', epilog=''' +Tool for HPI. + +Work in progress, will be used for config management, troubleshooting & introspection +''') + sp = p.add_subparsers(dest='mode') + sp.add_parser(Modes.HELLO, help='TODO just a stub, remove later') + return p + + +def main(): + p = parser() + args = p.parse_args() + mode = args.mode + if mode == Modes.HELLO: + print('hi') + else: + import sys + p.print_usage() + sys.exit(1) + + +if __name__ == '__main__': + main() diff --git a/setup.py b/setup.py index b2c78e3..e6edf26 100644 --- a/setup.py +++ b/setup.py @@ -66,6 +66,7 @@ def main(): 'dataclasses', ], }, + entry_points={'console_scripts': ['hpi=my.__main__:main']}, ) diff --git a/tox.ini b/tox.ini index 82efab2..ba5ac70 100644 --- a/tox.ini +++ b/tox.ini @@ -17,6 +17,7 @@ commands = # TODO add; once I figure out porg depdencency?? tests/config.py # TODO run demo.py? just make sure with_my is a bit cleverer? # TODO e.g. under CI, rely on installing + hpi hello [testenv:demo]