X-Git-Url: https://git.donarmstrong.com/?a=blobdiff_plain;f=engine.cpp;h=d5192bf87b50a98a76e971305cd68a96e8750a0b;hb=df82ee669d7eb9ae9a1a334339dfab7961cb16c6;hp=b9360a4468a9aedd553675d9d3a2110afa6feab7;hpb=e2373397d9316500ee0d196e60dcab75d208511a;p=mothur.git diff --git a/engine.cpp b/engine.cpp index b9360a4..d5192bf 100644 --- a/engine.cpp +++ b/engine.cpp @@ -10,16 +10,17 @@ * Fix later, don't have time now. * */ -using namespace std; + #include "engine.hpp" /***********************************************************************/ -InteractEngine::InteractEngine(){ +InteractEngine::InteractEngine(string path){ globaldata = GlobalData::getInstance(); - + globaldata->argv = path; + system("clear"); // char buffer = ' '; // ifstream header("introtext.txt"); @@ -45,8 +46,8 @@ bool InteractEngine::getInput(){ bool errorFree; ErrorCheck* errorCheckor = new ErrorCheck(); - cout << "mothur v1.2.0" << endl; - cout << "Last updated: 4/14/2009" << endl << endl; + cout << "mothur v.1.3.0" << endl; + cout << "Last updated: 5/29/2009" << endl << endl; cout << "by" << endl; cout << "Patrick D. Schloss" << endl << endl; cout << "Department of Microbiology" << endl; @@ -63,6 +64,9 @@ bool InteractEngine::getInput(){ getline(cin, input); if (cin.eof()) { input = "quit()"; } + //allow user to omit the () on the quit command + if (input == "quit") { input = "quit()"; } + errorFree = errorCheckor->checkInput(input); if (errorFree == true) { CommandOptionParser parser(input); @@ -92,10 +96,11 @@ bool InteractEngine::getInput(){ /***********************************************************************/ //This function opens the batchfile to be used by BatchEngine::getInput. -BatchEngine::BatchEngine(string batchFileName){ +BatchEngine::BatchEngine(string path, string batchFileName){ try { globaldata = GlobalData::getInstance(); openedBatch = openInputFile(batchFileName, inputBatchFile); + globaldata->argv = path; system("clear"); @@ -125,6 +130,9 @@ BatchEngine::~BatchEngine(){ //This Function allows the user to run a batchfile containing several commands on Dotur bool BatchEngine::getInput(){ try { + //check if this is a valid batchfile + if (openedBatch == 1) { cout << "unable to open batchfile" << endl; return 1; } + string input = ""; string commandName = ""; bool errorFree; @@ -136,28 +144,34 @@ bool BatchEngine::getInput(){ while(quitCommandCalled == 0){ getline(inputBatchFile, input); - if (inputBatchFile.eof()) { input = "quit()"; } + if (input[0] != '#') { + if (inputBatchFile.eof()) { input = "quit()"; } - cout << endl << "mothur > " << input << endl; - errorFree = errorCheckor->checkInput(input); - if (errorFree == true) { - CommandOptionParser parser(input); - commandName = parser.getCommandString(); - ifstream filehandle; + cout << endl << "mothur > " << input << endl; + + //allow user to omit the () on the quit command + if (input == "quit") { input = "quit()"; } + + errorFree = errorCheckor->checkInput(input); + if (errorFree == true) { + CommandOptionParser parser(input); + commandName = parser.getCommandString(); + ifstream filehandle; - if (openedBatch == 0) { //able to open batchfile - //executes valid command - CommandFactory cFactory; - Command* command = cFactory.getCommand(commandName); - quitCommandCalled = command->execute(); + if (openedBatch == 0) { //able to open batchfile + //executes valid command + CommandFactory cFactory; + Command* command = cFactory.getCommand(commandName); + quitCommandCalled = command->execute(); + } + else { + cout << "Invalid." << endl; + } } else { - cout << "Invalid." << endl; + cout << "Unable to open batchfile." << endl; } - } - else { - cout << "Unable to open batchfile." << endl; - } + }else { if (inputBatchFile.eof()) { input = "quit()"; } } } return 1; }