helpString += "To set the tempdefault to the directory where mothur.exe is located you may enter: tempdefault=default.\n";
helpString += "The set.dir command should be in the following format: set.dir(output=yourOutputDirectory, input=yourInputDirectory, tempdefault=yourTempDefault).\n";
helpString += "Example set.outdir(output=/Users/lab/desktop/outputs, input=/Users/lab/desktop/inputs).\n";
- helpString += "Note: No spaces between parameter labels (i.e. output), '=' and parameters (i.e.yourOutputDirectory).\n\n";
+ helpString += "Note: No spaces between parameter labels (i.e. output), '=' and parameters (i.e.yourOutputDirectory).\n";
return helpString;
}
catch(exception& e) {
//allow user to run help
if(option == "help") { help(); abort = true; calledHelp = true; }
+ else if(option == "citation") { citation(); abort = true; calledHelp = true;}
else {
- //valid paramters for this command
- string Array[] = {"output","input","tempdefault","outputdir","inputdir"};
- vector<string> myArray (Array, Array+(sizeof(Array)/sizeof(string)));
+ vector<string> myArray = setParameters();
OptionParser parser(option);
map<string, string> parameters = parser.getParameters();
commandFactory = CommandFactory::getInstance();
+ string tag = "";
+#ifdef USE_MPI
+ int pid;
+ MPI_Comm_rank(MPI_COMM_WORLD, &pid); //find out who we are
+
+ tag = toString(pid);
+#endif
+
+ m->mothurOut("Mothur's directories:"); m->mothurOutEndLine();
+
//redirect output
if ((output == "clear") || (output == "")) { output = ""; commandFactory->setOutputDirectory(output); }
else if (output == "default") {
string exepath = m->argv;
output = exepath.substr(0, (exepath.find_last_of('m')));
- m->mothurOut("Changing output directory to " + output); m->mothurOutEndLine();
+ m->mothurOut("outputDir=" + output); m->mothurOutEndLine();
commandFactory->setOutputDirectory(output);
}else {
//add / to name if needed
string lastChar = output.substr(output.length()-1);
- #if defined (__APPLE__) || (__MACH__) || (linux) || (__linux)
+ #if defined (__APPLE__) || (__MACH__) || (linux) || (__linux) || (__linux__) || (__unix__) || (__unix)
if (lastChar != "/") { output += "/"; }
#else
if (lastChar != "\\") { output += "\\"; }
//test to make sure directory exists
output = m->getFullPathName(output);
- string outTemp = output + "temp";
+ string outTemp = output + tag + "temp";
ofstream out;
out.open(outTemp.c_str(), ios::trunc);
if(!out) {
m->mothurOut(output + " directory does not exist or is not writable."); m->mothurOutEndLine();
}else{
out.close();
- remove(outTemp.c_str());
- m->mothurOut("Changing output directory to " + output); m->mothurOutEndLine();
+ m->mothurRemove(outTemp);
+ m->mothurOut("outputDir=" + output); m->mothurOutEndLine();
commandFactory->setOutputDirectory(output);
}
}
string exepath = m->argv;
input = exepath.substr(0, (exepath.find_last_of('m')));
- m->mothurOut("Changing input directory to " + input); m->mothurOutEndLine();
+ m->mothurOut("inputDir=" + input); m->mothurOutEndLine();
commandFactory->setInputDirectory(input);
}else {
//add / to name if needed
string lastChar = input.substr(input.length()-1);
- #if defined (__APPLE__) || (__MACH__) || (linux) || (__linux)
+ #if defined (__APPLE__) || (__MACH__) || (linux) || (__linux) || (__linux__) || (__unix__) || (__unix)
if (lastChar != "/") { input += "/"; }
#else
if (lastChar != "\\") { input += "\\"; }
//test to make sure directory exists
input = m->getFullPathName(input);
- string inTemp = input + "temp";
+ string inTemp = input + tag + "temp";
ofstream in;
in.open(inTemp.c_str(), ios::trunc);
if(!in) {
m->mothurOut(input + " directory does not exist or is not writable."); m->mothurOutEndLine();
}else{
in.close();
- remove(inTemp.c_str());
- m->mothurOut("Changing input directory to " + input); m->mothurOutEndLine();
+ m->mothurRemove(inTemp);
+ m->mothurOut("inputDir=" + input); m->mothurOutEndLine();
commandFactory->setInputDirectory(input);
}
}
if (tempdefault == "clear") {
#ifdef MOTHUR_FILES
string temp = MOTHUR_FILES;
- m->mothurOut("Resetting default directory to " + temp); m->mothurOutEndLine();
+ m->mothurOut("tempDefault=" + temp); m->mothurOutEndLine();
m->setDefaultPath(temp);
#else
string temp = "";
string exepath = m->argv;
tempdefault = exepath.substr(0, (exepath.find_last_of('m')));
- m->mothurOut("Changing default directory to " + tempdefault); m->mothurOutEndLine();
+ m->mothurOut("tempDefault=" + tempdefault); m->mothurOutEndLine();
m->setDefaultPath(tempdefault);
}else {
//add / to name if needed
string lastChar = tempdefault.substr(tempdefault.length()-1);
- #if defined (__APPLE__) || (__MACH__) || (linux) || (__linux)
+ #if defined (__APPLE__) || (__MACH__) || (linux) || (__linux) || (__linux__) || (__unix__) || (__unix)
if (lastChar != "/") { tempdefault += "/"; }
#else
if (lastChar != "\\") { tempdefault += "\\"; }
#endif
- m->mothurOut("Changing default directory to " + tempdefault); m->mothurOutEndLine();
- m->setDefaultPath(tempdefault);
+ //test to make sure directory exists
+ tempdefault = m->getFullPathName(tempdefault);
+ string inTemp = tempdefault + tag + "temp";
+ ofstream in;
+ in.open(inTemp.c_str(), ios::trunc);
+ if(!in) {
+ m->mothurOut(tempdefault + " directory does not exist or is not writable."); m->mothurOutEndLine();
+ }else{
+ in.close();
+ m->mothurRemove(inTemp);
+ m->mothurOut("tempDefault=" + tempdefault); m->mothurOutEndLine();
+ m->setDefaultPath(tempdefault);
+ }
}
return 0;