X-Git-Url: https://git.donarmstrong.com/?a=blobdiff_plain;f=mothur.cpp;h=9ed0dfc5d1645c5c2b65cabdb04063e300634d04;hb=fd5f17bcbe5fadab2c525f3d1fcfd1d79a60ae72;hp=a3eef76a2766d5ae69c824b0ee4cf4b5e3f14a51;hpb=aa9238c0a9e6e7aa0ed8b8b606b08ad4fd7dcfe3;p=mothur.git diff --git a/mothur.cpp b/mothur.cpp index a3eef76..9ed0dfc 100644 --- a/mothur.cpp +++ b/mothur.cpp @@ -35,15 +35,19 @@ void ctrlc_handler ( int sig ) { /***********************************************************************/ int main(int argc, char *argv[]){ MothurOut* m = MothurOut::getInstance(); - try { - + try { signal(SIGINT, ctrlc_handler ); time_t ltime = time(NULL); /* calendar time */ string logFileName = "mothur." + toString(ltime) + ".logfile"; + #ifdef USE_MPI + MPI_Init(&argc, &argv); + #endif + m->setFileName(logFileName); + //version #if defined (__APPLE__) || (__MACH__) || (linux) || (__linux) system("clear"); @@ -52,7 +56,7 @@ int main(int argc, char *argv[]){ m->mothurOutEndLine(); m->mothurOutEndLine(); #else m->mothurOutJustToLog("Linux version"); - >m->mothurOutEndLine(); m->mothurOutEndLine(); + m->mothurOutEndLine(); m->mothurOutEndLine(); #endif #else @@ -66,10 +70,42 @@ int main(int argc, char *argv[]){ m->mothurOutEndLine(); m->mothurOutEndLine(); #endif + #ifdef MOTHUR_FILES + string temp = MOTHUR_FILES; + + //add / to name if needed + string lastChar = temp.substr(temp.length()-1); + #if defined (__APPLE__) || (__MACH__) || (linux) || (__linux) + if (lastChar != "/") { temp += "/"; } + #else + if (lastChar != "\\") { temp += "\\"; } + #endif + + temp = m->getFullPathName(temp); + m->setDefaultPath(temp); + + m->mothurOutJustToLog("Using default file location " + temp); + m->mothurOutEndLine(); m->mothurOutEndLine(); + #endif + + #ifdef BIT_VERSION + m->mothurOutJustToLog("Running 64Bit Version"); + m->mothurOutEndLine(); m->mothurOutEndLine(); + #else + m->mothurOutJustToLog("Running 32Bit Version"); + m->mothurOutEndLine(); m->mothurOutEndLine(); + #endif + + //get releaseDate from Make + string releaseDate = RELEASE_DATE; + string mothurVersion = VERSION; + m->setReleaseDate(releaseDate); + m->setVersion(mothurVersion); + //header - m->mothurOut("mothur v.1.8"); + m->mothurOut("mothur v." + mothurVersion); m->mothurOutEndLine(); - m->mothurOut("Last updated: 2/02/2010"); + m->mothurOut("Last updated: " + releaseDate); m->mothurOutEndLine(); m->mothurOutEndLine(); m->mothurOut("by"); @@ -99,15 +135,21 @@ int main(int argc, char *argv[]){ m->mothurOutEndLine(); m->mothurOut("Type 'quit()' to exit program"); m->mothurOutEndLine(); - - + + #ifdef USE_MPI + m->mothurOutJustToLog("Using MPI\tversion "); + int version, subversion; + MPI_Get_version(&version, &subversion); + m->mothurOutJustToLog(toString(version) + "." + toString(subversion) + "\n"); + #endif + //srand(54321); srand( (unsigned)time( NULL ) ); Engine* mothur; bool bail = 0; string input; - + if(argc>1){ input = argv[1]; @@ -130,16 +172,45 @@ int main(int argc, char *argv[]){ mothur = new InteractEngine(argv[0]); } - while(bail == 0) { bail = mothur->getInput(); } + while(bail == 0) { bail = mothur->getInput(); } + + //closes logfile so we can rename + m->closeLog(); string outputDir = mothur->getOutputDir(); - string newlogFileName = outputDir + logFileName; - - //need this because m->mothurOut makes the logfile, but doesn't know where to put it - rename(logFileName.c_str(), newlogFileName.c_str()); //logfile with timestamp + string tempLog = mothur->getLogFileName(); + bool append = mothur->getAppend(); - delete mothur; + string newlogFileName; + if (tempLog != "") { + newlogFileName = outputDir + tempLog; + + if (!append) { + //need this because m->mothurOut makes the logfile, but doesn't know where to put it + rename(logFileName.c_str(), newlogFileName.c_str()); //logfile with timestamp + }else { + ofstream outNewLog; + m->openOutputFileAppend(newlogFileName, outNewLog); + outNewLog << endl << endl << "*********************************************************************************" << endl << endl; + outNewLog.close(); + + m->appendFiles(logFileName, newlogFileName); + remove(logFileName.c_str()); + } + }else{ + newlogFileName = outputDir + logFileName; + //need this because m->mothurOut makes the logfile, but doesn't know where to put it + rename(logFileName.c_str(), newlogFileName.c_str()); //logfile with timestamp + } + + + delete mothur; + + #ifdef USE_MPI + MPI_Finalize(); + #endif + return 0; } catch(exception& e) {