diff options
author | Juergen Bocklage-Ryannel <jbocklage-ryannel@luxoft.com> | 2018-11-01 16:21:28 -0400 |
---|---|---|
committer | Juergen Bocklage-Ryannel <jbocklage-ryannel@luxoft.com> | 2018-11-01 17:38:20 -0400 |
commit | 57421d7cfd220bbdbcb18345f532959e28e87fe8 (patch) | |
tree | 6d0004d891a8be202cc75448107308c7b48b6d84 | |
parent | 4131d2a2d7ba644af4fb632601f2f15853f621a7 (diff) | |
download | qtivi-qface-57421d7cfd220bbdbcb18345f532959e28e87fe8.tar.gz |
add command line interface to qface
-rw-r--r-- | qface/cli.py | 40 |
1 files changed, 40 insertions, 0 deletions
diff --git a/qface/cli.py b/qface/cli.py new file mode 100644 index 0000000..f0b06b0 --- /dev/null +++ b/qface/cli.py @@ -0,0 +1,40 @@ +import sys +import click +from path import Path +from qface.generator import FileSystem, RuleGenerator +from qface.watch import monitor + + +def run(config, src, dst, force=False, features=None): + project = Path(dst).name + system = FileSystem.parse(src) + template_dir = config.dirname() / 'templates' + + context = { + 'dst': dst, + 'system': system, + 'project': project, + 'features': features, + } + + generator = RuleGenerator(template_dir, destination=dst, context=context, features=features, force=force) + generator.process_rules(config, system) + + +@click.command() +@click.option('--config', '-c', type=click.Path(exists=True)) +@click.option('--reload/--no-reload', default=False) +@click.option('--features', '-f', multiple=True) +@click.option('--force/--no-force', default=True, help="Force writing of target files, ignores preserve") +@click.argument('src', nargs=-1, type=click.Path(exists=True)) +@click.argument('dst', nargs=1, type=click.Path(exists=False, file_okay=False)) +def app(config, src, dst, features, reload, force): + """Takes several files or directories as src and generates the code + in the given dst directory.""" + config = Path(config) + if reload: + argv = sys.argv.copy() + argv.remove('--reload') + monitor(config.dirname(), src, dst, argv) + else: + run(config, src, dst, force) |