void ert_workflow_list_init( ert_workflow_list_type * workflow_list , config_content_type * config ) { /* Adding jobs */ { if (config_content_has_item( config , WORKFLOW_JOB_DIRECTORY_KEY)) { const config_content_item_type * jobpath_item = config_content_get_item( config , WORKFLOW_JOB_DIRECTORY_KEY); for (int i=0; i < config_content_item_get_size( jobpath_item ); i++) { config_content_node_type * path_node = config_content_item_iget_node( jobpath_item , i ); for (int j=0; j < config_content_node_get_size( path_node ); j++) ert_workflow_list_add_jobs_in_directory( workflow_list , config_content_node_iget_as_abspath( path_node , j ) ); } } } { if (config_content_has_item( config , LOAD_WORKFLOW_JOB_KEY)) { const config_content_item_type * job_item = config_content_get_item( config , LOAD_WORKFLOW_JOB_KEY); for (int i=0; i < config_content_item_get_size( job_item ); i++) { config_content_node_type * job_node = config_content_item_iget_node( job_item , i ); const char * config_file = config_content_node_iget_as_path( job_node , 0 ); const char * job_name = config_content_node_safe_iget( job_node , 1 ); ert_workflow_list_add_job( workflow_list , job_name , config_file); } } } /* Adding workflows */ { if (config_content_has_item( config , LOAD_WORKFLOW_KEY)) { const config_content_item_type * workflow_item = config_content_get_item( config , LOAD_WORKFLOW_KEY); for (int i=0; i < config_content_item_get_size( workflow_item ); i++) { config_content_node_type * workflow_node = config_content_item_iget_node( workflow_item , i ); const char * workflow_file = config_content_node_iget_as_path( workflow_node , 0 ); const char * workflow_name = config_content_node_safe_iget( workflow_node , 1 ); ert_workflow_list_add_workflow( workflow_list , workflow_file , workflow_name ); } } } }
const char * config_content_safe_iget(const config_content_type * content , const char *kw, int occurence , int index) { const char * value = NULL; if (config_content_has_item( content , kw )) { config_content_item_type * item = config_content_get_item(content , kw); if (occurence < config_content_item_get_size( item )) { config_content_node_type * node = config_content_item_iget_node( item , occurence ); value = config_content_node_safe_iget( node , index ); } } return value; }