X-Git-Url: https://git.donarmstrong.com/?a=blobdiff_plain;f=engine.cpp;h=add84b9e944ceeaaee5cd4313836bca2a751315d;hb=a2edaadb975e5cb5d6cf68353bfe95f53235600d;hp=5e56479f2851f89e324f8c62dc54250324da7d66;hpb=bfbc55964f1977da72c2cea984288a427d370a59;p=mothur.git diff --git a/engine.cpp b/engine.cpp index 5e56479..add84b9 100644 --- a/engine.cpp +++ b/engine.cpp @@ -12,21 +12,15 @@ */ using namespace std; - -#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"); @@ -52,8 +46,8 @@ bool InteractEngine::getInput(){ bool errorFree; ErrorCheck* errorCheckor = new ErrorCheck(); - cout << "mothur v1.0" << endl; - cout << "Last updated: 1/29/2009" << endl << endl; + cout << "mothur v1.2.0" << endl; + cout << "Last updated: 4/14/2009" << endl << endl; cout << "by" << endl; cout << "Patrick D. Schloss" << endl << endl; cout << "Department of Microbiology" << endl; @@ -70,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); @@ -99,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"); @@ -132,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; @@ -143,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; }