]> git.donarmstrong.com Git - mothur.git/blobdiff - catchallcommand.cpp
added root parameter to the unifrac commands so you can choose to include the entire...
[mothur.git] / catchallcommand.cpp
index b0e5eff6652a9defaa887eb7d21bb9bfe9e372a6..b0ab7c8314ac7e1a5b267b02bf2ccad559b62355 100644 (file)
@@ -25,6 +25,7 @@ vector<string> CatchAllCommand::getValidParameters(){
 //**********************************************************************************************************************
 CatchAllCommand::CatchAllCommand(){    
        try {
+               abort = true; calledHelp = true;
                //initialize outputTypes
                vector<string> tempOutNames;
                outputTypes["csv"] = tempOutNames;
@@ -62,11 +63,11 @@ vector<string> CatchAllCommand::getRequiredFiles(){
 CatchAllCommand::CatchAllCommand(string option)  {     
        try {
                globaldata = GlobalData::getInstance();
-               abort = false;
+               abort = false; calledHelp = false;   
                allLines = 1;
                
                //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
@@ -173,24 +174,26 @@ void CatchAllCommand::help(){
 int CatchAllCommand::execute() {       
        try {
                
-               if (abort == true) { return 0; }
-               
-               //prepare full output directory
-               outputDir = m->getFullPathName(outputDir);
+               if (abort == true) { if (calledHelp) { return 0; }  return 2;   }
                
                //get location of catchall
                GlobalData* globaldata = GlobalData::getInstance();
                path = globaldata->argv;
-               path = path.substr(0, (path.find_last_of('m')));
+               path = path.substr(0, (path.find_last_of("othur")-5));
                path = m->getFullPathName(path);
-
+               
                string catchAllCommandExe = ""; 
                #if defined (__APPLE__) || (__MACH__) || (linux) || (__linux)
                        catchAllCommandExe += "mono " + path + "CatchAllcmdL.exe ";
+                       if (outputDir == "") { outputDir = "./"; } //force full pathname to be created for catchall, this is necessary because if catchall is in the path it will look for input file whereever the exe is and not the cwd.
                #else
                        catchAllCommandExe += "\"" + path + "CatchAllcmdW.exe\"" + " ";
+                       if (outputDir == "") { outputDir = ".\\"; } //force full pathname to be created for catchall, this is necessary because if catchall is in the path it will look for input file whereever the exe is and not the cwd.
                #endif
                
+               //prepare full output directory
+               outputDir = m->getFullPathName(outputDir);
+               
                vector<string> inputFileNames;
                if (sharedfile != "") { inputFileNames = parseSharedFile(sharedfile);  globaldata->setFormat("sabund");  }
                else {  inputFileNames.push_back(sabundfile);  }                
@@ -236,7 +239,8 @@ int CatchAllCommand::execute() {
                                                        //wrap entire string in ""
                                                        catchAllCommand = "\"" + catchAllCommand + "\"";
                                                #endif
-                                                                               //run catchall
+                                       
+                                               //run catchall
                                                system(catchAllCommand.c_str());
                                        
                                                remove(filename.c_str());