#!/usr/bin/env python3
#
# Read a file with workflow parameters and apply methods prepare() and write_cfd_files()

import sys
import traceback

import mola.naming_conventions as names
from mola.logging import MolaException
from mola.workflow import read_workflow

err1 = f'must specify an input file name, e.g.: "mola_prepare {names.FILE_INPUT_WORKFLOW}"'
if len(sys.argv) != 2: raise AttributeError(err1)
filename = str(sys.argv[1])

try:
    w = read_workflow(filename)
    w.prepare()  
    w.write_cfd_files()

except Exception as exception:
    with open(names.FILE_ERROR_PREPARING_WORKFLOW, 'w') as f: 
        f.write(traceback.format_exc())
    raise MolaException('Unable to prepare workflow')
