]> git.donarmstrong.com Git - mothur.git/blobdiff - setdircommand.cpp
added otu.association command. added calcSpearman, calcKendall and calcPearson functi...
[mothur.git] / setdircommand.cpp
index 0b3379cf230967f48e41c234e26c8c98b593c540..67a1f59f8388dbfec55ae7b552f02640b5d6b93f 100644 (file)
@@ -101,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
@@ -122,7 +130,7 @@ 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) {
@@ -154,7 +162,7 @@ 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) {
@@ -194,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;