#include #include #include #include "db.h" #include "parse.h" #include "config.h" CONFIG config; void write_log(char* p) { time_t now = time(0); char* timestr = ctime(&now); *(strchr(timestr, '\n')) = 0; fprintf(stderr, "%s: %s", timestr, p); } // return nonzero if did anything // bool do_pass(APP app) { WORKUNIT wu; RESULT result; bool did_something = false; int retval; wu.appid = app.id; wu.assimilate_state = ASSIMILATE_READY; while (!db_workunit_enum_app_assimilate_state(wu)) { did_something = true; switch(wu.main_state) { case WU_MAIN_STATE_INIT: write_log("ERROR; WU shouldn't be in init state\n"); break; case WU_MAIN_STATE_DONE: if (!wu.canonical_resultid) { write_log("ERROR: canonical resultid zero\n"); break; } retval = db_result(wu.canonical_resultid, result); if (retval) { write_log("can't get canonical result\n"); break; } printf("canonical result for WU %s:\n%s", wu.name, result.xml_doc_out); result.file_delete_state = FILE_DELETE_READY; db_result_update(result); break; case WU_MAIN_STATE_ERROR: printf("WU %s had an error\n", wu.name); break; } wu.assimilate_state = ASSIMILATE_DONE; db_workunit_update(wu); } return did_something; } int main(int argc, char** argv) { int retval; bool asynch = false, one_pass = false; APP app; int i; char buf[256]; for (i=1; i