]> git.donarmstrong.com Git - mothur.git/blobdiff - setdircommand.cpp
added otu.association command. added calcSpearman, calcKendall and calcPearson functi...
[mothur.git] / setdircommand.cpp
index 3135b8133c851e5fe58a13ee32e29da05da90216..67a1f59f8388dbfec55ae7b552f02640b5d6b93f 100644 (file)
@@ -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<string> 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;