X-Git-Url: https://git.donarmstrong.com/?a=blobdiff_plain;f=engine.cpp;h=9e5801b1b057b2f2a1cc4a986e105ae3e73f14b5;hb=5c80ce8b80938d41cf6c64a017fa6fd50d45de5b;hp=fdd017ab34c7a083b3f09bc270498155b3cb3766;hpb=74844a60d80c6dd06e3fb02ee9b928424f9019b0;p=mothur.git diff --git a/engine.cpp b/engine.cpp index fdd017a..9e5801b 100644 --- a/engine.cpp +++ b/engine.cpp @@ -54,7 +54,9 @@ bool InteractEngine::getInput(){ mout->mothurOutEndLine(); input = getCommand(); - mout->mothurOutEndLine(); + mout->mothurOutEndLine(); + + if (mout->control_pressed) { input = "quit()"; } //allow user to omit the () on the quit command if (input == "quit") { input = "quit()"; } @@ -65,11 +67,23 @@ bool InteractEngine::getInput(){ options = parser.getOptionString(); if (commandName != "") { - + mout->executing = true; + + #ifdef USE_MPI + int pid; + MPI_Comm_rank(MPI_COMM_WORLD, &pid); + + if ((cFactory->MPIEnabled(commandName)) || (pid == 0)) { + #endif //executes valid command Command* command = cFactory->getCommand(commandName, options); quitCommandCalled = command->execute(); + mout->control_pressed = 0; + mout->executing = false; + #ifdef USE_MPI + } + #endif }else { mout->mothurOut("Your input contains errors. Please try again."); mout->mothurOutEndLine(); @@ -93,7 +107,7 @@ string Engine::getCommand() { if(nextCommand != NULL) { add_history(nextCommand); } else{ //^D causes null string and we want it to quit mothur nextCommand = "quit"; - cout << nextCommand << endl; + mout->mothurOut(nextCommand); } mout->mothurOutJustToLog("mothur > " + toString(nextCommand)); @@ -103,17 +117,19 @@ string Engine::getCommand() { mout->mothurOut("mothur > "); getline(cin, nextCommand); mout->mothurOutJustToLog("mothur > " + toString(nextCommand)); + return nextCommand; #endif #else - string nextCommand = ""; - mout->mothurOut("mothur > "); - getline(cin, nextCommand); - mout->mothurOutJustToLog("mothur > " + toString(nextCommand)); - return nextCommand; + string nextCommand = ""; + + mout->mothurOut("mothur > "); + getline(cin, nextCommand); + mout->mothurOutJustToLog(toString(nextCommand)); + + return nextCommand; #endif - - mout->mothurOutEndLine(); + } catch(exception& e) { @@ -169,7 +185,8 @@ bool BatchEngine::getInput(){ mout->mothurOutEndLine(); mout->mothurOut("mothur > " + input); mout->mothurOutEndLine(); - + + if (mout->control_pressed) { input = "quit()"; } //allow user to omit the () on the quit command if (input == "quit") { input = "quit()"; } @@ -179,10 +196,22 @@ bool BatchEngine::getInput(){ options = parser.getOptionString(); if (commandName != "") { - + mout->executing = true; + #ifdef USE_MPI + int pid; + MPI_Comm_rank(MPI_COMM_WORLD, &pid); + + if ((cFactory->MPIEnabled(commandName)) || (pid == 0)) { + #endif //executes valid command Command* command = cFactory->getCommand(commandName, options); quitCommandCalled = command->execute(); + mout->control_pressed = 0; + mout->executing = false; + + #ifdef USE_MPI + } + #endif }else { mout->mothurOut("Invalid."); mout->mothurOutEndLine(); @@ -244,11 +273,11 @@ bool ScriptEngine::getInput(){ if (input == "") { input = "quit()"; } - mout->mothurOutEndLine(); mout->mothurOut("mothur > " + input); mout->mothurOutEndLine(); - + + if (mout->control_pressed) { input = "quit()"; } //allow user to omit the () on the quit command if (input == "quit") { input = "quit()"; } @@ -258,10 +287,22 @@ bool ScriptEngine::getInput(){ options = parser.getOptionString(); if (commandName != "") { - + mout->executing = true; + #ifdef USE_MPI + int pid; + MPI_Comm_rank(MPI_COMM_WORLD, &pid); + + if ((cFactory->MPIEnabled(commandName)) || (pid == 0)) { + #endif //executes valid command Command* command = cFactory->getCommand(commandName, options); quitCommandCalled = command->execute(); + mout->control_pressed = 0; + mout->executing = false; + + #ifdef USE_MPI + } + #endif }else { mout->mothurOut("Invalid."); mout->mothurOutEndLine();