]> git.donarmstrong.com Git - mothur.git/blobdiff - optionparser.cpp
added set.current and get.current commands and modified existing commands to update...
[mothur.git] / optionparser.cpp
index 08032b32b83556f7ace0b83e235e51121e80f399..0506da6ff441c5a85e296c1fd6f3033110622335 100644 (file)
@@ -30,13 +30,83 @@ OptionParser::OptionParser(string option) {
                }
        }
        catch(exception& e) {
-               m->errorOut(e, "OptionParser", "parse");
+               m->errorOut(e, "OptionParser", "OptionParser");
                exit(1);
        }
 }
 
 /***********************************************************************/
 
-map<string, string> OptionParser::getParameters() {    return parameters;      }
+map<string, string> OptionParser::getParameters() {    
+       try {
+               
+               //loop through parameters and look for "current" so you can return the appropriate file
+               //doing it here to avoid code duplication in each of the commands
+               
+               map<string, string>::iterator it;
+               for (it = parameters.begin(); it != parameters.end();) {
+                       
+                       if (it->second == "current") {
+                               
+                               //look for file types
+                               if ((it->first == "fasta") || (it->first == "candidate")) {
+                                       it->second = m->getFastaFile();
+                               }else if (it->first == "qfile") {
+                                       it->second = m->getQualFile();
+                               }else if (it->first == "phylip") {
+                                       it->second = m->getPhylipFile();
+                               }else if (it->first == "column") {
+                                       it->second = m->getColumnFile();
+                               }else if (it->first == "list") {
+                                       it->second = m->getListFile();
+                               }else if (it->first == "rabund") {
+                                       it->second = m->getRabundFile();
+                               }else if (it->first == "sabund") {
+                                       it->second = m->getSabundFile();
+                               }else if (it->first == "name") {
+                                       it->second = m->getNameFile();
+                               }else if (it->first == "group") {
+                                       it->second = m->getGroupFile();
+                               }else if (it->first == "order") {
+                                       it->second = m->getOrderFile();
+                               }else if (it->first == "ordergroup") {
+                                       it->second = m->getOrderGroupFile();
+                               }else if (it->first == "tree") {
+                                       it->second = m->getTreeFile();
+                               }else if (it->first == "shared") {
+                                       it->second = m->getSharedFile();
+                               }else if (it->first == "relabund") {
+                                       it->second = m->getRelAbundFile();
+                               }else if (it->first == "design") {
+                                       it->second = m->getDesignFile();
+                               }else if (it->first == "sff") {
+                                       it->second = m->getSFFFile();
+                               }else if (it->first == "oligos") {
+                                       it->second = m->getOligosFile();
+                               }else if (it->first == "accnos") {
+                                       it->second = m->getAccnosFile();
+                               }else if (it->first == "taxonomy") {
+                                       it->second = m->getTaxonomyFile();
+                               }else {
+                                       m->mothurOut("[ERROR]: mothur does not save a current file for " + it->first); m->mothurOutEndLine();
+                               }
+                               
+                               if (it->second == "") { //no file was saved for that type, warn and remove from parameters
+                                       m->mothurOut("[WARNING]: no file was saved for " + it->first + " parameter."); m->mothurOutEndLine();
+                                       parameters.erase(it++);
+                               }else {
+                                       m->mothurOut("Using " + it->second + " as input file for the " + it->first + " parameter."); m->mothurOutEndLine();
+                                       it++;
+                               }
+                       }else{ it++; }
+               }
+       
+               return parameters;      
+       }
+       catch(exception& e) {
+               m->errorOut(e, "OptionParser", "getParameters");
+               exit(1);
+       }
+}
 
 /***********************************************************************/