X-Git-Url: https://git.donarmstrong.com/?a=blobdiff_plain;f=systemcommand.cpp;h=c07deff1f19c0315b29e0f488572b3feacb7114f;hb=133dddf9ffde5059e3ea8290a2e7742843e3f2b7;hp=129ed8012fe92aafe37ec8946a2f3367d3da79ce;hpb=e150b0b0664caec517485ee6d69dcdade6dcae77;p=mothur.git diff --git a/systemcommand.cpp b/systemcommand.cpp index 129ed80..c07deff 100644 --- a/systemcommand.cpp +++ b/systemcommand.cpp @@ -91,8 +91,31 @@ int SystemCommand::execute(){ if (abort == true) { if (calledHelp) { return 0; } return 2; } + //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; + } + system(command.c_str()); + 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); + } + return 0; }