37 lines
981 B
Python
37 lines
981 B
Python
import argparse
|
|
import json
|
|
from Cheetah.Template import Template
|
|
import importlib
|
|
|
|
|
|
parser = argparse.ArgumentParser(description='LetterGenerator')
|
|
parser.add_argument('--input', '-i',
|
|
help = 'Input file in JSON format',
|
|
required = True)
|
|
parser.add_argument('--template', '-t',
|
|
help = 'Template file in Cheetah format',
|
|
required = True)
|
|
parser.add_argument('--output', '-o',
|
|
help = 'Output file',
|
|
required = True)
|
|
parser.add_argument('--preprocessor', '-p',
|
|
help = 'Preprocessor module',
|
|
required = False)
|
|
args = parser.parse_args()
|
|
inputFile = args.input
|
|
templateFile = args.template
|
|
outputFile = args.output
|
|
preprocessor = args.preprocessor
|
|
|
|
with open(inputFile) as f:
|
|
inputData = json.load(f)
|
|
|
|
if preprocessor:
|
|
preprocessorMod = importlib.import_module(preprocessor)
|
|
inputData = preprocessorMod.perform(inputData)
|
|
|
|
tmpl = Template(file=templateFile, searchList=[ inputData ])
|
|
|
|
with open(outputFile, 'w') as f:
|
|
f.write(str(tmpl))
|