]> git.donarmstrong.com Git - mothur.git/blobdiff - systemcommand.cpp
mods to trim.seqs
[mothur.git] / systemcommand.cpp
index 5bc9b46e47522d38fe4a89f0119df8785a4d8d4d..abc07d0743a0a3e8f7172c27fe4094571abb3d5c 100644 (file)
@@ -9,38 +9,66 @@
 
 #include "systemcommand.h"
 
+//**********************************************************************************************************************
+vector<string> SystemCommand::getValidParameters(){    
+       try {
+               vector<string> myArray;
+               return myArray;
+       }
+       catch(exception& e) {
+               m->errorOut(e, "SystemCommand", "getValidParameters");
+               exit(1);
+       }
+}
+//**********************************************************************************************************************
+vector<string> SystemCommand::getRequiredParameters(){ 
+       try {
+               vector<string> myArray;
+               return myArray;
+       }
+       catch(exception& e) {
+               m->errorOut(e, "SystemCommand", "getRequiredParameters");
+               exit(1);
+       }
+}
+//**********************************************************************************************************************
+vector<string> SystemCommand::getRequiredFiles(){      
+       try {
+               vector<string> myArray;
+               return myArray;
+       }
+       catch(exception& e) {
+               m->errorOut(e, "SystemCommand", "getRequiredFiles");
+               exit(1);
+       }
+}
 //**********************************************************************************************************************
 
-SystemCommand::SystemCommand(string option){
+SystemCommand::SystemCommand(string option)  {
        try {
-               abort = false;
+               abort = false; calledHelp = false;   
                
                //allow user to run help
-               if(option == "help") { help(); abort = true; }
+               if(option == "help") { help(); abort = true; calledHelp = true; }
                
                else {
-                       //valid paramters for this command
-                       string Array[] =  {"command"};
-                       vector<string> myArray (Array, Array+(sizeof(Array)/sizeof(string)));
+                       if (option == "") { m->mothurOut("You must enter a command to run."); m->mothurOutEndLine(); abort = true; }
+                       else { 
+                               //check for outputdir and inputdir parameters
+                               int commaPos = option.find_first_of(',');
+                               
+                               //if there is a comma then grab string up to that pos
+                               if (commaPos != option.npos) {
+                                       option = option.substr(0, commaPos);
+                               }
                        
-                       OptionParser parser(option);
-                       map<string,string> parameters = parser.getParameters();
-                       
-                       ValidParameters validParameter;
-                       
-                       //check to make sure all parameters are valid for command
-                       for (map<string,string>::iterator it = parameters.begin(); it != parameters.end(); it++) { 
-                               if (validParameter.isValidParameter(it->first, myArray, it->second) != true) {  abort = true;  }
+                               command = option;
                        }
-                       
-                       //check for required parameters
-                       command = validParameter.validFile(parameters, "command", false);
-                       if (command == "not found") { mothurOut("command is a required parameter."); mothurOutEndLine(); abort = true; }
                }       
 
        }
        catch(exception& e) {
-               errorOut(e, "SystemCommand", "SystemCommand");
+               m->errorOut(e, "SystemCommand", "SystemCommand");
                exit(1);
        }
 }
@@ -48,14 +76,13 @@ SystemCommand::SystemCommand(string option){
 
 void SystemCommand::help(){
        try {
-               mothurOut("The system command allows you to execute a system command from within mothur.\n");
-               mothurOut("The system command parameter is command and it is required.\n");
-               mothurOut("The system command should be in the following format: system(command=yourCommand).\n");
-               mothurOut("Example system(command=clear).\n");
-               mothurOut("Note: No spaces between parameter labels (i.e. command), '=' and parameters (i.e.yourCommand).\n\n");
+               m->mothurOut("The system command allows you to execute a system command from within mothur.\n");
+               m->mothurOut("The system has no parameters.\n");
+               m->mothurOut("The system command should be in the following format: system(yourCommand).\n");
+               m->mothurOut("Example system(clear).\n");
        }
        catch(exception& e) {
-               errorOut(e, "SystemCommand", "help");
+               m->errorOut(e, "SystemCommand", "help");
                exit(1);
        }
 }
@@ -65,7 +92,7 @@ void SystemCommand::help(){
 int SystemCommand::execute(){
        try {
                
-               if (abort == true) { return 0; }
+               if (abort == true) { if (calledHelp) { return 0; }  return 2;   }
                
                system(command.c_str());
                
@@ -73,7 +100,7 @@ int SystemCommand::execute(){
        }
 
        catch(exception& e) {
-               errorOut(e, "SystemCommand", "execute");
+               m->errorOut(e, "SystemCommand", "execute");
                exit(1);
        }
 }