diff options
| author | Jules Laplace <julescarbon@gmail.com> | 2020-06-23 23:18:07 +0200 |
|---|---|---|
| committer | Jules Laplace <julescarbon@gmail.com> | 2020-06-23 23:18:07 +0200 |
| commit | 3cf70771cb45cc16ec33ffe44e7a1a4799d8f395 (patch) | |
| tree | 55f0edb53141d5f043b486d722f507bfd94abdea /animism-align/cli/cli.py | |
| parent | 014816dc724c1be60b7dd28d4e608c89b4ed451c (diff) | |
adding web app base
Diffstat (limited to 'animism-align/cli/cli.py')
| -rwxr-xr-x | animism-align/cli/cli.py | 58 |
1 files changed, 58 insertions, 0 deletions
diff --git a/animism-align/cli/cli.py b/animism-align/cli/cli.py new file mode 100755 index 0000000..2158398 --- /dev/null +++ b/animism-align/cli/cli.py @@ -0,0 +1,58 @@ +#!/usr/bin/env python + +import click + +from app.settings import app_cfg +from app.utils import log_utils +from app.utils.click_factory import ClickSimple + + +if __name__ == '__main__': + + import sys + import argparse + + # argparse: intercept group + argv_tmp = sys.argv + sys.argv = sys.argv[:2] + ap = argparse.ArgumentParser('\033[1m\033[94mSwimmer\033[0m') + ap.add_argument('group', choices=app_cfg.CLICK_GROUPS.keys()) + args = ap.parse_args() + sys.argv = argv_tmp + sys.argv.pop(1) # remove group + + # special cases: Flask, DB + if args.group == 'flask': + + from flask.cli import FlaskGroup + from app.server.web import create_app + + cli = FlaskGroup(create_app=create_app) + + elif args.group == 'db': + + import re + from alembic.config import main + + if __name__ == '__main__': + sys.argv[0] = re.sub(r'(-script\.pyw?|\.exe)?$', '', sys.argv[0]) + sys.exit(main()) + + else: + + # click: parse rest of argv + cc = ClickSimple.create(app_cfg.CLICK_GROUPS[args.group]) + @click.group(cls=cc, chain=False, no_args_is_help=True) + @click.option('-v', '--verbose', 'opt_verbosity', count=True, default=4, + show_default=True, + help='Verbosity: -v DEBUG, -vv INFO, -vvv WARN, -vvvv ERROR, -vvvvv CRITICAL') + @click.option('--log', 'opt_fp_log', help='Path to logfile') + @click.pass_context + def cli(ctx, opt_verbosity, opt_fp_log): + """\033[1m\033[94mSwimmer\033[0m + """ + ctx.opts = {} + log_utils.Logger.create(verbosity=opt_verbosity, logfile=opt_fp_log) + + # entrypoint + cli()
\ No newline at end of file |
