//delimiting path char
char delim;
- #if defined (__APPLE__) || (__MACH__) || (linux) || (__linux)
+ #if defined (__APPLE__) || (__MACH__) || (linux) || (__linux) || (__linux__) || (__unix__) || (__unix)
delim = ':';
#else
delim = ';';
vector<string> dirs;
mout->splitAtChar(envPath, dirs, delim);
+ if (mout->debug) { mout->mothurOut("[DEBUG]: dir's in path: \n"); }
+
//get path related to mothur
for (int i = 0; i < dirs.size(); i++) {
+
+ if (mout->debug) { mout->mothurOut("[DEBUG]: " + dirs[i] + "\n"); }
+
//to lower so we can find it
string tempLower = "";
for (int j = 0; j < dirs[i].length(); j++) { tempLower += tolower(dirs[i][j]); }
//is this mothurs path?
if (tempLower.find("mothur") != -1) { mothurPath = dirs[i]; break; }
}
-
+
+ if (mout->debug) { mout->mothurOut("[DEBUG]: mothurPath = " + mothurPath + "\n"); }
+
if (mothurPath != "") {
//add mothur so it looks like what argv would look like
- #if defined (__APPLE__) || (__MACH__) || (linux) || (__linux)
+ #if defined (__APPLE__) || (__MACH__) || (linux) || (__linux) || (__linux__) || (__unix__) || (__unix)
mothurPath += "/mothur";
#else
mothurPath += "\\mothur";
//is this mothurs path?
ifstream in;
string tempIn = dirs[i];
- #if defined (__APPLE__) || (__MACH__) || (linux) || (__linux)
+ #if defined (__APPLE__) || (__MACH__) || (linux) || (__linux) || (__linux__) || (__unix__) || (__unix)
tempIn += "/mothur";
#else
tempIn += "\\mothur";
mout->openInputFile(tempIn, in, "");
//if this file exists
- if (in) { in.close(); mothurPath = tempIn; break; }
+ if (in) { in.close(); mothurPath = tempIn; break; if (mout->debug) { mout->mothurOut("[DEBUG]: found it, mothurPath = " + mothurPath + "\n"); } }
}
}
//cout << pid << " is in execute " << commandName << endl;
#endif
//executes valid command
+ mout->runParse = true;
+ mout->clearGroups();
+ mout->clearAllGroups();
+ mout->Treenames.clear();
+ mout->saveNextLabel = "";
+ mout->printedHeaders = false;
+ mout->commandInputsConvertError = false;
+ mout->currentBinLabels.clear();
+ mout->binLabelsInFile.clear();
+
Command* command = cFactory->getCommand(commandName, options);
- quitCommandCalled = command->execute();
+ if (mout->commandInputsConvertError) { quitCommandCalled = 2; }
+ else { quitCommandCalled = command->execute(); }
//if we aborted command
if (quitCommandCalled == 2) { mout->mothurOut("[ERROR]: did not complete " + commandName + "."); mout->mothurOutEndLine(); }
string Engine::getCommand() {
try {
- #if defined (__APPLE__) || (__MACH__) || (linux) || (__linux)
+ #if defined (__APPLE__) || (__MACH__) || (linux) || (__linux) || (__linux__) || (__unix__) || (__unix)
#ifdef USE_READLINE
char* nextCommand = NULL;
nextCommand = readline("mothur > ");
if(nextCommand != NULL) { add_history(nextCommand); }
else{ //^D causes null string and we want it to quit mothur
- strcpy(nextCommand, "quit");
+ nextCommand = strdup("quit");
mout->mothurOut(nextCommand);
}
if ((cFactory->MPIEnabled(commandName)) || (pid == 0)) {
#endif
//executes valid command
+ mout->runParse = true;
+ mout->clearGroups();
+ mout->clearAllGroups();
+ mout->Treenames.clear();
+ mout->saveNextLabel = "";
+ mout->printedHeaders = false;
+ mout->commandInputsConvertError = false;
+ mout->currentBinLabels.clear();
+ mout->binLabelsInFile.clear();
+
+
Command* command = cFactory->getCommand(commandName, options);
- quitCommandCalled = command->execute();
+ if (mout->commandInputsConvertError) { quitCommandCalled = 2; }
+ else { quitCommandCalled = command->execute(); }
//if we aborted command
if (quitCommandCalled == 2) { mout->mothurOut("[ERROR]: did not complete " + commandName + "."); mout->mothurOutEndLine(); }
/***********************************************************************/
string BatchEngine::getNextCommand(ifstream& inputBatchFile) {
try {
-
+
string nextcommand = "";
if (inputBatchFile.eof()) { nextcommand = "quit()"; }
if (input == "") { input = "quit()"; }
- mout->mothurOutEndLine();
- mout->mothurOut("mothur > " + input);
- mout->mothurOutEndLine();
+ if (mout->gui) {
+ if ((input.find("quit") != string::npos) || (input.find("set.logfile") != string::npos)) {}
+ else if ((input.find("get.current") != string::npos) && (!mout->hasCurrentFiles())) {}
+ else { mout->mothurOutEndLine(); mout->mothurOut("mothur > " + input); mout->mothurOutEndLine(); }
+ }else{
+ mout->mothurOutEndLine(); mout->mothurOut("mothur > " + input); mout->mothurOutEndLine();
+ }
#ifdef USE_MPI
//send commandName
//cout << pid << " is in execute" << endl;
#endif
//executes valid command
+ mout->runParse = true;
+ mout->clearGroups();
+ mout->clearAllGroups();
+ mout->Treenames.clear();
+ mout->saveNextLabel = "";
+ mout->printedHeaders = false;
+ mout->commandInputsConvertError = false;
+ mout->currentBinLabels.clear();
+ mout->binLabelsInFile.clear();
+
Command* command = cFactory->getCommand(commandName, options);
- quitCommandCalled = command->execute();
+ if (mout->commandInputsConvertError) { quitCommandCalled = 2; }
+ else { quitCommandCalled = command->execute(); }
//if we aborted command
if (quitCommandCalled == 2) { mout->mothurOut("[ERROR]: did not complete " + commandName + "."); mout->mothurOutEndLine(); }