#!/usr/bin/env python
# import fileinput, os, sys, getopt
import sys
from . import database_actions
from .cli import verbose, check
from .general_stuff import (
GeneralInfos,
version_control_infos,
tab_completion,
write_minimal_user_config,
ESM_MASTER_DIR
)
from .compile_info import setup_and_model_infos
from .task import Task
[docs]def main_flow(parsed_args, target):
main_infos = GeneralInfos()
vcs = version_control_infos()
setups2models = setup_and_model_infos(vcs, main_infos, parsed_args)
tab_completion(parsed_args, setups2models)
setups2models.config = setups2models.reduce(target)
user_config = write_minimal_user_config(setups2models.config)
from esm_runscripts.esm_sim_objects import SimulationSetup
complete_setup = SimulationSetup(user_config=user_config)
complete_config = complete_setup.config
# This will be a problem later with GEOMAR
#setups2models.replace_last_vars(env)
user_task = Task(target, setups2models, vcs, main_infos, complete_config)
if verbose > 0:
user_task.output()
user_task.output_steps()
if check:
return 0
user_task.validate()
user_task.execute() #env)
database = database_actions.database_entry(
user_task.todo, user_task.package.raw_name, ESM_MASTER_DIR
)
database.connection.close()
if not parsed_args["keep"]:
user_task.cleanup_script()
return 0