// Ryzom - MMORPG Framework // Copyright (C) 2010 Winch Gate Property Limited // // This program is free software: you can redistribute it and/or modify // it under the terms of the GNU Affero General Public License as // published by the Free Software Foundation, either version 3 of the // License, or (at your option) any later version. // // This program is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU Affero General Public License for more details. // // You should have received a copy of the GNU Affero General Public License // along with this program. If not, see . #include "nel/misc/debug.h" #include "nel/misc/command.h" #include "nel/misc/sstring.h" #include "nel/misc/cmd_args.h" #include "patch_gen_common.h" //#include "game_share/handy_commands.h" //----------------------------------------------- // MAIN //----------------------------------------------- int main(int argc,char** argv) { NLMISC::createDebug(); // Parse Command Line. NLMISC::CCmdArgs args; args.setDescription("Generate patch"); args.addArg("j", "jobs", "jobs", "Specifies the number of jobs (commands) to run simultaneously"); args.addAdditionalArg("CommandLine","command line (For a list of valid commands and their paramaters try help)",false,true); // if there are no command line args then display a friendly message and exit if (!args.parse(argc, argv)) { args.displayHelp(); return 1; } // Analyze option try { std::string cjobs = args.haveArg("j") ? args.getArg("j").front() : "1"; jobs_simultaneously = (uint32) std::stoul(cjobs); } catch (const std::invalid_argument) { args.displayHelp(); NLMISC::ErrorLog->displayNL("Bad value for parameter jobs"); return 2; } // build the command line by concatnating input arguments (separating with spaces) NLMISC::DebugLog->displayNL("param jobs:%u", jobs_simultaneously); std::vector listargs = args.getAdditionalArg("CommandLine"); NLMISC::CSString commandline; for (std::vector::iterator it = listargs.begin() ; it != listargs.end(); ++it) { NLMISC::CSString s = *it; // check whether the argument needs to be quote encapsulated if (s.contains(' ') && s[0]!='\"') s= "\""+ s+ "\""; if ( it != listargs.begin() ) commandline+=' '; commandline+= s; } // have NeL treat the command NLMISC::ICommand::execute(commandline, *NLMISC::InfoLog); return 0; }