in src/main.py [0:0]
def build_parser() -> argparse.ArgumentParser:
parser = argparse.ArgumentParser(
description='Modular service main CLI endpoint'
)
# -- top level sub-parser
sub_parsers = parser.add_subparsers(dest=ACTION_DEST, required=True,
help='Available actions')
# generate-openapi
parser_open_api = sub_parsers.add_parser(
GENERATE_OPENAPI_ACTION,
help='Generates Open API spec for API'
)
parser_open_api.add_argument(
'-f', '--filename', type=Path, required=True,
help='Filename where to write spec'
)
# run
parser_run = sub_parsers.add_parser(RUN_ACTION, help='Run on-prem server')
parser_run.add_argument(
'-g', '--gunicorn', action='store_true', default=False,
help='Specify the flag is you want to run the server via Gunicorn')
parser_run.add_argument(
'-nw', '--workers', type=int, required=False,
help='Number of gunicorn workers. Must be specified only '
'if --gunicorn flag is set'
)
parser_run.add_argument(
'-sw', '--swagger', action='store_true', default=False,
help='Specify the flag is you want to enable swagger'
)
parser_run.add_argument(
'-swp', '--swagger-prefix', type=str, default=DEFAULT_SWAGGER_PREFIX,
help='Swagger path prefix, (default: %(default)s)'
)
parser_run.add_argument('--host', default=DEFAULT_HOST, type=str,
help='IP address where to run the server')
parser_run.add_argument('--port', default=DEFAULT_PORT, type=int,
help='IP Port to run the server on')
# init-vault
_ = sub_parsers.add_parser(INIT_VAULT_ACTION, help='Init token in vault')
# init
_ = sub_parsers.add_parser(
CREATE_SYSTEM_USER_ACTION,
help='Creates a system user that can perform actions on behalf of '
'other users'
)
# create-indexes
_ = sub_parsers.add_parser(
CREATE_INDEXES_ACTION, help='Creates indexes for mongo'
)
_ = sub_parsers.add_parser(
DUMP_PERMISSIONS_ACTION, help='Dumps all the available permission'
)
_ = sub_parsers.add_parser(
UPDATE_DEPLOYMENT_RESOURCES_ACTION,
help='Updates api definition insider deployment_resources.json'
)
return parser