#!/usr/bin/env python3

# This is a command-line interface to the pycwb package. It provides options like
# pycwb create, pycwb run, pycwb server, etc. It is a wrapper around the pycwb package

import argparse
import pycwb.cli.server as server
import pycwb.cli.run as run
import pycwb.cli.flow as flow


def main():
    parser = argparse.ArgumentParser(prog='pycwb')
    subparsers = parser.add_subparsers(help='commands')

    # Create subcommand
    create_parser = subparsers.add_parser('server', help='Run a simple server to show the results')
    server.init_parser(create_parser)
    create_parser.set_defaults(func=server.command)

    # Run subcommand
    run_parser = subparsers.add_parser('run', help='Run search')
    run.init_parser(run_parser)
    run_parser.set_defaults(func=run.command)

    flow_parser = subparsers.add_parser('flow', help='Run search')
    flow.init_parser(flow_parser)
    flow_parser.set_defaults(func=flow.command)

    args = parser.parse_args()
    if hasattr(args, 'func'):
        args.func(args)
    else:
        parser.print_help()

    # if no command is given, print help
    if len(vars(args)) == 0:
        parser.print_help()


if __name__ == '__main__':
    main()