]> git.donarmstrong.com Git - mothur.git/blobdiff - systemcommand.cpp
working on windows paralellization, added trimOligos class to be used by trim.flows...
[mothur.git] / systemcommand.cpp
index d0057e8b4e8c199f9113f54af6a46836ab6f58b4..c07deff1f19c0315b29e0f488572b3feacb7114f 100644 (file)
@@ -91,23 +91,31 @@ int SystemCommand::execute(){
                
                if (abort == true) { if (calledHelp) { return 0; }  return 2;   }
                
-               command += " > ./commandScreen.output 2>&1";
-               system(command.c_str());
+               //if command contains a redirect don't add the redirect
+               bool usedRedirect = false;
+               if ((command.find('>')) == string::npos) {
+                       command += " > ./commandScreen.output 2>&1";
+                       usedRedirect = true;
+               }
                
-               ifstream in;
-               string filename = "./commandScreen.output";
-               m->openInputFile(filename, in, "no error");
+               system(command.c_str());
                
-               string output = "";
-               while(char c = in.get()){
-                       if(in.eof())            {       break;                  }
-                       else                            {       output += c;    }
+               if (usedRedirect) {
+                       ifstream in;
+                       string filename = "./commandScreen.output";
+                       m->openInputFile(filename, in, "no error");
+                       
+                       string output = "";
+                       while(char c = in.get()){
+                               if(in.eof())            {       break;                  }
+                               else                            {       output += c;    }
+                       }
+                       in.close();
+                       
+                       m->mothurOut(output); m->mothurOutEndLine();
+                       m->mothurRemove(filename);
                }
-               in.close();
                
-               m->mothurOut(output); m->mothurOutEndLine();
-               m->mothurRemove(filename);
-                               
                return 0;               
        }