init
This commit is contained in:
parent
2b40ea7f71
commit
3ca109308e
3 changed files with 93 additions and 0 deletions
8
bin/rougail
Executable file
8
bin/rougail
Executable 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())
|
||||
0
src/rougail/cli/__init__.py
Normal file
0
src/rougail/cli/__init__.py
Normal file
85
src/rougail/cli/__main__.py
Normal file
85
src/rougail/cli/__main__.py
Normal file
|
|
@ -0,0 +1,85 @@
|
|||
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
|
||||
|
||||
try:
|
||||
from rougail.doc import RougailDoc
|
||||
except:
|
||||
pass
|
||||
|
||||
try:
|
||||
from rougail.exporter import RougailExporter
|
||||
except:
|
||||
pass
|
||||
|
||||
try:
|
||||
from rougail.user_data_file import RougailUserDataFile
|
||||
except:
|
||||
pass
|
||||
|
||||
|
||||
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,
|
||||
)
|
||||
parser.parse_args()
|
||||
cmd_config.property.remove('not_for_commandline')
|
||||
cmd_config.property.read_only()
|
||||
if rougailconfig['step.output'] == 'doc':
|
||||
doc(rougailconfig)
|
||||
else:
|
||||
# structural
|
||||
rougail = Rougail(rougailconfig)
|
||||
config = rougail.get_config()
|
||||
config.property.read_only()
|
||||
user_data_name = rougailconfig['step.user_data']
|
||||
if user_data_name == 'none':
|
||||
user_data_module = None
|
||||
elif user_data_name == 'file':
|
||||
# data user
|
||||
user_data_module = RougailUserDataFile(config,
|
||||
rougailconfig,
|
||||
)
|
||||
user_data_module.read()
|
||||
else:
|
||||
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))
|
||||
user_data_module = module.run(rougailconfig,
|
||||
config,
|
||||
)
|
||||
if rougailconfig['step.output'] == 'exporter':
|
||||
# output
|
||||
exporter(rougailconfig,
|
||||
config,
|
||||
user_data_module,
|
||||
)
|
||||
|
||||
|
||||
def doc(rougailconfig):
|
||||
inventory = RougailDoc(rougailconfig=rougailconfig)
|
||||
header = inventory.formater.header()
|
||||
print(inventory.gen_doc())
|
||||
|
||||
|
||||
def exporter(rougailconfig,
|
||||
config,
|
||||
data_user
|
||||
):
|
||||
export = RougailExporter(config,
|
||||
rougailconfig,
|
||||
)
|
||||
if data_user:
|
||||
export.errors = data_user.errors
|
||||
export.warnings = data_user.warnings
|
||||
export.exporter()
|
||||
export.print()
|
||||
Loading…
Reference in a new issue