X-Git-Url: https://git.donarmstrong.com/?a=blobdiff_plain;f=setdircommand.cpp;h=67a1f59f8388dbfec55ae7b552f02640b5d6b93f;hb=8dd3c225255d7084e3aff8740aa4f1f1cabb367a;hp=3135b8133c851e5fe58a13ee32e29da05da90216;hpb=9d6f36294dcaef3ac65a0e69fd8140077c3209e0;p=mothur.git diff --git a/setdircommand.cpp b/setdircommand.cpp index 3135b81..67a1f59 100644 --- a/setdircommand.cpp +++ b/setdircommand.cpp @@ -59,6 +59,7 @@ SetDirectoryCommand::SetDirectoryCommand(string option) { //allow user to run help if(option == "help") { help(); abort = true; calledHelp = true; } + else if(option == "citation") { citation(); abort = true; calledHelp = true;} else { vector myArray = setParameters(); @@ -100,6 +101,14 @@ int SetDirectoryCommand::execute(){ commandFactory = CommandFactory::getInstance(); + string tag = ""; +#ifdef USE_MPI + int pid; + MPI_Comm_rank(MPI_COMM_WORLD, &pid); //find out who we are + + tag = toString(pid); +#endif + m->mothurOut("Mothur's directories:"); m->mothurOutEndLine(); //redirect output @@ -121,14 +130,14 @@ int SetDirectoryCommand::execute(){ //test to make sure directory exists output = m->getFullPathName(output); - string outTemp = output + "temp"; + string outTemp = output + tag + "temp"; ofstream out; out.open(outTemp.c_str(), ios::trunc); if(!out) { m->mothurOut(output + " directory does not exist or is not writable."); m->mothurOutEndLine(); }else{ out.close(); - remove(outTemp.c_str()); + m->mothurRemove(outTemp); m->mothurOut("outputDir=" + output); m->mothurOutEndLine(); commandFactory->setOutputDirectory(output); } @@ -153,14 +162,14 @@ int SetDirectoryCommand::execute(){ //test to make sure directory exists input = m->getFullPathName(input); - string inTemp = input + "temp"; + string inTemp = input + tag + "temp"; ofstream in; in.open(inTemp.c_str(), ios::trunc); if(!in) { m->mothurOut(input + " directory does not exist or is not writable."); m->mothurOutEndLine(); }else{ in.close(); - remove(inTemp.c_str()); + m->mothurRemove(inTemp); m->mothurOut("inputDir=" + input); m->mothurOutEndLine(); commandFactory->setInputDirectory(input); } @@ -193,8 +202,19 @@ int SetDirectoryCommand::execute(){ if (lastChar != "\\") { tempdefault += "\\"; } #endif - m->mothurOut("tempDefault=" + tempdefault); m->mothurOutEndLine(); - m->setDefaultPath(tempdefault); + //test to make sure directory exists + tempdefault = m->getFullPathName(tempdefault); + string inTemp = tempdefault + tag + "temp"; + ofstream in; + in.open(inTemp.c_str(), ios::trunc); + if(!in) { + m->mothurOut(tempdefault + " directory does not exist or is not writable."); m->mothurOutEndLine(); + }else{ + in.close(); + m->mothurRemove(inTemp); + m->mothurOut("tempDefault=" + tempdefault); m->mothurOutEndLine(); + m->setDefaultPath(tempdefault); + } } return 0;