X-Git-Url: https://git.donarmstrong.com/?a=blobdiff_plain;f=engine.cpp;h=df65678912b1f3bd112e630b13ef934eebc5e219;hb=753dc84cf289b1d5dc0ca5b0c043640927aa951a;hp=e251f0031d5ffa2bc9685702ef76ae0489af8449;hpb=16bea3130e36addc54e2116dfbcd02d706ebee45;p=mothur.git diff --git a/engine.cpp b/engine.cpp index e251f00..df65678 100644 --- a/engine.cpp +++ b/engine.cpp @@ -10,30 +10,17 @@ * Fix later, don't have time now. * */ -using namespace std; - -#include -#include -#include -#include -#include -#include -#include - -#include "utilities.hpp" -#include "globaldata.hpp" -#include "commandoptionparser.hpp" -#include "command.hpp" -#include "commandfactory.hpp" -#include "errorchecking.h" + + #include "engine.hpp" /***********************************************************************/ -InteractEngine::InteractEngine(){ +InteractEngine::InteractEngine(string path){ globaldata = GlobalData::getInstance(); - + globaldata->argv = path; + system("clear"); // char buffer = ' '; // ifstream header("introtext.txt"); @@ -55,12 +42,13 @@ bool InteractEngine::getInput(){ try { string input = ""; string commandName = ""; + string options = ""; int quitCommandCalled = 0; - bool errorFree; - ErrorCheck* errorCheckor = new ErrorCheck(); + //bool errorFree; + //ErrorCheck* errorCheckor = new ErrorCheck(); - cout << "mothur v1.0" << endl; - cout << "Last updated: 1/29/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; @@ -77,18 +65,24 @@ bool InteractEngine::getInput(){ getline(cin, input); if (cin.eof()) { input = "quit()"; } - errorFree = errorCheckor->checkInput(input); - if (errorFree == true) { - CommandOptionParser parser(input); - commandName = parser.getCommandString(); + //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(); + options = parser.getOptionString(); + + if (commandName != "") { //executes valid command CommandFactory cFactory; - Command* command = cFactory.getCommand(commandName); + Command* command = cFactory.getCommand(commandName, options); quitCommandCalled = command->execute(); - + }else { - cout << "Your input contains errors. Please try again." << endl; + cout << "Your input contains errors. Please try again." << endl; } } return 1; @@ -106,10 +100,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"); @@ -139,39 +134,42 @@ 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; - ErrorCheck* errorCheckor = new ErrorCheck(); - - CommandFactory cFactory; + string options = ""; + + //CommandFactory cFactory; int quitCommandCalled = 0; while(quitCommandCalled == 0){ - getline(inputBatchFile, input); if (inputBatchFile.eof()) { input = "quit()"; } + else { getline(inputBatchFile, input); } + + if (input[0] != '#') { - cout << endl << "mothur > " << input << endl; - errorFree = errorCheckor->checkInput(input); - if (errorFree == true) { + cout << endl << "mothur > " << input << endl; + + //allow user to omit the () on the quit command + if (input == "quit") { input = "quit()"; } + CommandOptionParser parser(input); commandName = parser.getCommandString(); - ifstream filehandle; - - if (openedBatch == 0) { //able to open batchfile + options = parser.getOptionString(); + + if (commandName != "") { + //executes valid command CommandFactory cFactory; - Command* command = cFactory.getCommand(commandName); + Command* command = cFactory.getCommand(commandName, options); quitCommandCalled = command->execute(); - } - else { - cout << "Invalid." << endl; - } - } - else { - cout << "Unable to open batchfile." << endl; + }else { cout << "Invalid." << endl; } + } + gobble(inputBatchFile); } return 1; }