int main(int argc, char * argv[]) { execution_settings settings; dynamic_graph input_dg; dynamic_weighted_graph input_dwg; execution_briefing briefing; dynamic_weighted_graph *output_dwg; int *output_communities; if(!parse_args(argc, argv, &settings)) // Invalid input settings return -1; settings_print(&settings); if(!parse_input(&input_dg, &input_dwg, &settings)) return -1; if(!execute_community_detection(&input_dg, &input_dwg, &settings, &output_dwg, &output_communities, &briefing)) printf("Community detection exited with errors!\n"); if(briefing.execution_successful) { free(output_communities); dynamic_weighted_graph_free(output_dwg); free(output_dwg); } printf(PRINTING_UTILITY_STARS); }
Settings *settings_load() { int i; Settings *s = settings_new(); char *sav_file = find_in_share("req_settings.txt"); if (fileExists(sav_file)) { FILE *fp = FOPEN(sav_file, "r"); if (fp) { char buf[1024]; while (fgets(buf, 1024, fp) != NULL) { read_string_param(buf, csv_dir_key, &s->csv_dir); read_string_param(buf, output_dir_key, &s->output_dir); read_int_param(buf, obs_req_num_key, &s->obs_req_num); read_int_param(buf, obs_req_id_aadn_key, &s->obs_req_id_aadn); read_int_param(buf, obs_req_id_tdrs_key, &s->obs_req_id_tdrs); read_int_param(buf, acq_req_num_key, &s->acq_req_num); read_int_param(buf, odl0_seq_num_key, &s->odl0_seq_num); read_int_param(buf, odl0_req_id_key, &s->odl0_req_id); read_string_param(buf, station_code_key, &s->station_code); for (i=0; i<MAX_STATIONS; ++i) { char id_key[128], stn_code_key[128]; snprintf(id_key, 128, "%s %d", acq_req_id_key, i+1); read_int_param(buf, id_key, &s->acq_req_ids[i]); snprintf(stn_code_key, 128, "%s %d", acq_req_stn_code_key, i+1); char *tmp=NULL; read_string_param(buf, stn_code_key, &tmp); if (tmp) { if (strlen(tmp) > 4) tmp[4] = '\0'; strcpy(s->acq_req_stn_codes[i], tmp); free(tmp); } } } FCLOSE(fp); } else { printf("Failed to open settings file: %s\n", sav_file); } } else { printf("No settings file found.\n"); } FREE(sav_file); if (s->obs_req_num < 1) s->obs_req_num = 1; if (s->obs_req_id_aadn < 1) s->obs_req_id_aadn = 1; if (s->obs_req_id_tdrs < 1) s->obs_req_id_tdrs = 1; if (s->acq_req_num < 1) s->acq_req_num = 1; for (i=0; i<MAX_STATIONS; ++i) if (s->acq_req_ids[i] < 1) s->acq_req_ids[i] = 1; if (s->odl0_seq_num < 1) s->odl0_seq_num = 1; if (s->odl0_req_id < 1) s->odl0_req_id = 1; if (!s->station_code) s->station_code = STRDUP("AADN"); #ifdef DEBUG_SETTINGS settings_print(s); #endif return s; }