}
}
/***********************************************************************/
-string Engine::findMothursPath(){
- try {
-
- string envPath = getenv("PATH");
- string mothurPath = "";
-
- //delimiting path char
- char delim;
- #if defined (__APPLE__) || (__MACH__) || (linux) || (__linux) || (__linux__) || (__unix__) || (__unix)
- delim = ':';
- #else
- delim = ';';
- #endif
-
- //break apart path variable by ':'
- vector<string> dirs;
- mout->splitAtChar(envPath, dirs, delim);
-
- //get path related to mothur
- for (int i = 0; i < dirs.size(); i++) {
- //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 (mothurPath != "") {
- //add mothur so it looks like what argv would look like
- #if defined (__APPLE__) || (__MACH__) || (linux) || (__linux) || (__linux__) || (__unix__) || (__unix)
- mothurPath += "/mothur";
- #else
- mothurPath += "\\mothur";
- #endif
- }else {
- //okay mothur is not in the path, so the folder mothur is in must be in the path
- //lets find out which one
-
- //get path related to mothur
- for (int i = 0; i < dirs.size(); i++) {
-
- //is this mothurs path?
- ifstream in;
- string tempIn = dirs[i];
- #if defined (__APPLE__) || (__MACH__) || (linux) || (__linux) || (__linux__) || (__unix__) || (__unix)
- tempIn += "/mothur";
- #else
- tempIn += "\\mothur";
- #endif
- mout->openInputFile(tempIn, in, "");
-
- //if this file exists
- if (in) { in.close(); mothurPath = tempIn; break; }
- }
- }
-
- return mothurPath;
-
- }
- catch(exception& e) {
- mout->errorOut(e, "Engine", "findMothursPath");
- exit(1);
- }
-}
+
/***********************************************************************/
InteractEngine::InteractEngine(string path){
string temppath = path.substr(0, (path.find_last_of("othur")-5));
//this will happen if you set the path variable to contain mothur's exe location
- if (temppath == "") { path = findMothursPath(); }
+ if (temppath == "") { path = mout->findProgramPath("mothur"); }
mout->argv = path;
}
if (pid == 0) {
#endif
-
+
+ if (mout->changedSeqNames) { mout->mothurOut("[WARNING]: your sequence names contained ':'. I changed them to '_' to avoid problems in your downstream analysis.\n"); }
+
mout->mothurOutEndLine();
input = getCommand();
//cout << pid << " is in execute " << commandName << endl;
#endif
//executes valid command
+ mout->changedSeqNames = false;
mout->runParse = true;
mout->clearGroups();
mout->clearAllGroups();
string temppath = path.substr(0, (path.find_last_of("othur")-5));
//this will happen if you set the path variable to contain mothur's exe location
- if (temppath == "") { path = findMothursPath(); }
+ if (temppath == "") { path = mout->findProgramPath("mothur"); }
mout->argv = path;
if (input[0] != '#') {
-
+ if (mout->changedSeqNames) { mout->mothurOut("[WARNING]: your sequence names contained ':'. I changed them to '_' to avoid problems in your downstream analysis.\n"); }
mout->mothurOutEndLine();
mout->mothurOut("mothur > " + input);
mout->mothurOutEndLine();
if ((cFactory->MPIEnabled(commandName)) || (pid == 0)) {
#endif
//executes valid command
+ mout->changedSeqNames = false;
mout->runParse = true;
mout->clearGroups();
mout->clearAllGroups();
string temppath = path.substr(0, (path.find_last_of("othur")-5));
//this will happen if you set the path variable to contain mothur's exe location
- if (temppath == "") { path = findMothursPath(); }
+ if (temppath == "") { path = mout->findProgramPath("mothur"); }
mout->argv = path;
input = getNextCommand(listOfCommands);
if (input == "") { input = "quit()"; }
+
+ if (mout->changedSeqNames) { mout->mothurOut("[WARNING]: your sequence names contained ':'. I changed them to '_' to avoid problems in your downstream analysis.\n"); }
if (mout->gui) {
if ((input.find("quit") != string::npos) || (input.find("set.logfile") != string::npos)) {}
//cout << pid << " is in execute" << endl;
#endif
//executes valid command
+ mout->changedSeqNames = false;
mout->runParse = true;
mout->clearGroups();
mout->clearAllGroups();