feat: cli loads .rougailcli.yml file
This commit is contained in:
parent
3f2920f37c
commit
8c924a7cba
2 changed files with 28 additions and 5 deletions
|
|
@ -24,9 +24,13 @@ from pathlib import Path
|
|||
from rougail import Rougail
|
||||
from rougail.config import get_rougail_config
|
||||
from rougail.utils import load_modules
|
||||
from rougail.user_datas import UserDatas
|
||||
try:
|
||||
from rougail.user_data_yaml import RougailUserDataYaml
|
||||
except ImportError:
|
||||
RougailUserDataYaml = None
|
||||
try:
|
||||
from rougail.user_data_environment import RougailUserDataEnvironment
|
||||
from rougail.user_datas import UserDatas
|
||||
except ImportError:
|
||||
RougailUserDataEnvironment = None
|
||||
|
||||
|
|
@ -42,11 +46,21 @@ def _main():
|
|||
origin_prop = cmd_config.property.default('read_write', 'append')
|
||||
cmd_config.property.setdefault(frozenset(origin_prop | {"not_for_commandline"}), 'read_write', 'append')
|
||||
cmd_config.property.read_write()
|
||||
fake_rougail_config = {'step.user_data': [],}
|
||||
fake_user_datas = []
|
||||
if RougailUserDataYaml and Path(rougailconfig["cli.config_file"]).is_file():
|
||||
fake_rougail_config = {'step.user_data': 'yaml',
|
||||
'yaml.filename': [rougailconfig["cli.config_file"]],
|
||||
'yaml.file_with_secrets': 'all',
|
||||
}
|
||||
fake_user_datas.extend(RougailUserDataYaml(cmd_config, rougailconfig=fake_rougail_config).run())
|
||||
if RougailUserDataEnvironment:
|
||||
fake_rougail_config = {'step.user_data': 'environment',
|
||||
'environment.default_environment_name': 'ROUGAILCLI',
|
||||
}
|
||||
user_data = UserDatas(cmd_config).user_datas(RougailUserDataEnvironment(cmd_config, rougailconfig=fake_rougail_config).run())
|
||||
fake_user_datas.extend(RougailUserDataEnvironment(cmd_config, rougailconfig=fake_rougail_config).run())
|
||||
if fake_user_datas:
|
||||
user_data = UserDatas(cmd_config).user_datas(fake_user_datas)
|
||||
if user_data["errors"]:
|
||||
raise Exception(user_data["errors"][0])
|
||||
if user_data["warnings"]:
|
||||
|
|
@ -66,7 +80,6 @@ def _main():
|
|||
user_data_names = rougailconfig["step.user_data"]
|
||||
except PropertiesOptionError:
|
||||
user_data_names = []
|
||||
output_name = rougailconfig["step.output"]
|
||||
# structural
|
||||
rougail = Rougail(rougailconfig)
|
||||
config = rougail.run()
|
||||
|
|
@ -101,7 +114,6 @@ def _main():
|
|||
err_warn = {"errors": [], "warnings": []}
|
||||
if user_data_names:
|
||||
config.property.read_write()
|
||||
user_datas = []
|
||||
for user_data_name in user_data_names:
|
||||
path = (
|
||||
Path(__file__).parent.parent
|
||||
|
|
@ -118,6 +130,7 @@ def _main():
|
|||
err_warn["warnings"].extend(ret["warnings"])
|
||||
# output
|
||||
config.property.read_only()
|
||||
output_name = rougailconfig["step.output"]
|
||||
path = Path(__file__).parent.parent / ("output_" + output_name) / "__init__.py"
|
||||
if not path.is_file():
|
||||
raise Exception(
|
||||
|
|
@ -136,7 +149,7 @@ def _main():
|
|||
|
||||
def main():
|
||||
global print_traceback
|
||||
print_traceback = False
|
||||
print_traceback = True
|
||||
try:
|
||||
_main()
|
||||
except Exception as err:
|
||||
|
|
|
|||
|
|
@ -25,6 +25,16 @@ def get_rougail_config(
|
|||
) -> dict:
|
||||
options = f"""
|
||||
cli:
|
||||
description: {_('Command line option')}
|
||||
|
||||
config_file:
|
||||
description: {_('display debug informations')}
|
||||
type: unix_filename
|
||||
commandline: false
|
||||
params:
|
||||
allow_relative: true
|
||||
default: .rougailcli.yml
|
||||
|
||||
debug:
|
||||
description: {_('display debug informations')}
|
||||
negative_description: {_('do not display debut informations')}
|
||||
|
|
|
|||
Loading…
Reference in a new issue