From 5fe60044e070070562be9b6994572d5de199192b Mon Sep 17 00:00:00 2001 From: Simon Kowallik Date: Sat, 7 Dec 2019 18:17:38 +0100 Subject: [PATCH] add CLI support for ninja.(json|yaml|yml) Specification of a Template Configuration file when using `as3ninja transform` is now optional. AS3 Ninja will now try to use ninja.(json|yaml|yml) if no file is specified. --- as3ninja/cli.py | 20 +++++++++++++++----- 1 file changed, 15 insertions(+), 5 deletions(-) diff --git a/as3ninja/cli.py b/as3ninja/cli.py index 1dbf76e..9d33961 100755 --- a/as3ninja/cli.py +++ b/as3ninja/cli.py @@ -3,7 +3,7 @@ AS3 Ninja CLI module """ import json -from typing import Union +from typing import Optional, Union import click from loguru import logger @@ -34,7 +34,7 @@ def cli() -> None: @click.option( "-c", "--configuration-file", - required=True, + required=False, nargs=0, type=click.File("r"), help="JSON/YAML configuration file used to parameterize declaration template", @@ -60,15 +60,25 @@ def cli() -> None: @logger.catch def transform( declaration_template: str, - configuration_file: tuple, + configuration_file: Optional[tuple], output_file: Union[str, None], validate: bool, pretty: bool, ): """Transforms a declaration template using the configuration file to an AS3 delcaration which is validated against the JSON schema.""" template_configuration: list = [] - for config_file in configuration_file: - template_configuration.append(deserialize(datasource=config_file)) + if configuration_file: + for config_file in configuration_file: + template_configuration.append(deserialize(datasource=config_file)) + else: + try: + template_configuration.append(deserialize(datasource="./ninja.json")) + except: + # json failed, try yaml, then yml + try: + template_configuration.append(deserialize(datasource="./ninja.yaml")) + except: + template_configuration.append(deserialize(datasource="./ninja.yml")) if declaration_template: template = declaration_template.read()