]> git.donarmstrong.com Git - mothur.git/blobdiff - commandoptionparser.cpp
working on pam
[mothur.git] / commandoptionparser.cpp
index 6fc43ab9f44b980b677aa50bb8014a315fc34583..0038a714f4ae356e11d7dea57b4840a81eb946f4 100644 (file)
@@ -8,7 +8,6 @@
  */
 
 
-#include "globaldata.hpp"
 #include "commandoptionparser.hpp"
 
 
 //This Function parses through the command line and pulls out the command then sends the options to  the parseGlobalData
 CommandOptionParser::CommandOptionParser(string input){
        try {
+               m = MothurOut::getInstance();
+               
                int openParen = input.find_first_of('(');
                int closeParen = input.find_last_of(')');
-               string optionString = "";
+               optionString = "";
                commandString = "";
-       
-               if(openParen != -1 && closeParen != -1){                        
-                       commandString = input.substr(0, openParen);   //commandString contains everything before "("
-                       optionString = input.substr(openParen+1, closeParen-openParen-1); //optionString contains everything between "(" and ")".
+
+               if(openParen != -1 && closeParen != -1){        
+            //gobble extra spaces
+            int spot = 0;
+            for (int i = 0; i < input.length(); i++) {  if (!(isspace(input[i]))) { spot = i; break; } }
+            if (spot > openParen) { spot = 0; }
+                       commandString = input.substr(spot, openParen-spot);   //commandString contains everything before "("
+                       optionString = input.substr((openParen+1), (closeParen-openParen-1)); //optionString contains everything between "(" and ")".
                }
-                                       
-               GlobalData* globaldata = GlobalData::getInstance();
-               globaldata->parseGlobalData(commandString, optionString);                       //parser to separate and check options
-       }
+               else if (openParen == -1) { m->mothurOut("[ERROR]: You are missing ("); m->mothurOutEndLine(); }
+               else if (closeParen == -1) { m->mothurOut("[ERROR]: You are missing )"); m->mothurOutEndLine(); }
+    }
        catch(exception& e) {
-               cout << "Standard Error: " << e.what() << " has occurred in the CommandOptionParser class Function CommandOptionParser. Please contact Pat Schloss at pschloss@microbio.umass.edu." << "\n";
-               exit(1);
-       }
-       catch(...) {
-               cout << "An unknown error has occurred in the CommandOptionParser class function CommandOptionParser. Please contact Pat Schloss at pschloss@microbio.umass.edu." << "\n";
+               m->errorOut(e, "CommandOptionParser", "CommandOptionParser");
                exit(1);
        }
-
 }
 
 //**********************************************************************************************************************
@@ -45,3 +44,7 @@ CommandOptionParser::CommandOptionParser(string input){
 string CommandOptionParser::getCommandString() {       return commandString;   }
 
 //**********************************************************************************************************************
+
+string CommandOptionParser::getOptionString()  {       return optionString;    }
+
+//**********************************************************************************************************************