#include #include #include #include #include #include #include "settings.h" #include "job_list.h" #include "executor.h" #include "resultgen.h" int main(int argc, char **argv) { struct settings settings; struct job_list job_list; struct execute_state state; int exitcode = 0; int dirfd; init_settings(&settings); init_job_list(&job_list); if (argc < 2) { fprintf(stderr, "Usage: %s results-directory\n", argv[0]); return 1; } if ((dirfd = open(argv[1], O_RDONLY | O_DIRECTORY)) < 0) { fprintf(stderr, "Failure opening %s: %s\n", argv[1], strerror(errno)); return 1; } if (!initialize_execute_state_from_resume(dirfd, &state, &settings, &job_list)) { return 1; } if (!execute(&state, &settings, &job_list)) { exitcode = 1; } if (state.time_left == 0.0) { /* * Overall timeout happened. Results generation can * override this */ exitcode = 2; } if (!generate_results_path(settings.results_path)) { exitcode = 1; } printf("Done.\n"); return exitcode; }