This commit is contained in:
egarette@silique.fr 2024-08-02 10:41:11 +02:00
parent 2b40ea7f71
commit 915e441af4
3 changed files with 64 additions and 0 deletions

8
bin/rougail Executable file
View file

@ -0,0 +1,8 @@
#! /usr/bin/python3 -sP
# -*- coding: utf-8 -*-
import re
import sys
from rougail.cli.__main__ import main
if __name__ == '__main__':
sys.argv[0] = re.sub(r'(-script\.pyw|\.exe)?$', '', sys.argv[0])
sys.exit(main())

View file

View file

@ -0,0 +1,56 @@
from tiramisu_cmdline_parser import TiramisuCmdlineParser
from tiramisu import Config
from pathlib import Path
from rougail import Rougail
from rougail.config import get_rougail_config
from rougail.utils import load_modules
def main():
rougailconfig = get_rougail_config(backward_compatibility=False)
cmd_config = rougailconfig.config
cmd_config.property.read_write()
cmd_config.property.add('not_for_commandline')
parser = TiramisuCmdlineParser(cmd_config,
add_no_option_to_boolean=False,
short_name_max_len=2,
)
parser.parse_args()
cmd_config.property.remove('not_for_commandline')
cmd_config.property.read_only()
user_data_names = rougailconfig['step.user_data']
output_name = rougailconfig['step.output']
# structural
rougail = Rougail(rougailconfig)
for user_data_name in user_data_names:
rougail.converted.plugins.append('user_data_' + user_data_name)
rougail.converted.plugins.append('output_' + output_name)
config = rougail.get_config()
# data user
if not user_data_names:
user_datas = None
else:
config.property.read_write()
user_datas = {'errors': [],
'warnings': [],
}
for user_data_name in user_data_names:
path = Path(__file__).parent.parent / ('user_data_' + user_data_name) / 'cli.py'
if not path.is_file():
raise Exception(f'cannot find cli file for "user_data" module "{user_data_name}"')
module = load_modules('rougail.user_data_' + user_data_name + '.cli', str(path))
module.run(rougailconfig,
config,
user_datas,
)
# output
config.property.read_only()
path = Path(__file__).parent.parent / ('output_' + output_name) / 'cli.py'
if not path.is_file():
raise Exception(f'cannot find cli file for "output_name" module "{output_name}"')
module = load_modules('rougail.output_' + output_name + '.cli', str(path))
module.run(rougailconfig,
config,
user_datas,
)