12 #include <boost/program_options/options_description.hpp> 13 #include <boost/program_options/parsers.hpp> 20 namespace bpo = boost::program_options;
43 else if (
"clean" == _name)
56 <<
"DDS configuration" 57 <<
" v" << USER_DEFAULTS_CFG_VERSION <<
"\n" 64 if (
nullptr == _options)
65 throw std::runtime_error(
"Internal error: options' container is empty.");
68 bpo::options_description options(
"dds-agent options");
69 options.add_options()(
"help,h",
"Produce help message");
70 options.add_options()(
"version,v",
"Version information");
71 options.add_options()(
"command",
72 bpo::value<std::string>(),
73 "The command is a name of dds-agent command." 74 " Can be one of the following: start, clean.\n" 75 "For user's convenience it is allowed to call dds-agent without \"--command\" option" 76 " by just specifying the command name directly, like:\ndds-agent start.\n\n" 78 " start: \tStart dds-agent\n" 79 " clean: \tCleaning");
80 options.add_options()(
81 "slots,s", bpo::value<size_t>(&_options->
m_slots),
"Defines a number of task slots per agent.");
84 bpo::positional_options_description pd;
88 bpo::variables_map vm;
89 bpo::store(bpo::command_line_parser(_argc, _argv).options(options).positional(pd).run(), vm);
92 if (vm.count(
"help") || vm.empty())
97 if (vm.count(
"version"))
104 if (vm.count(
"command"))
109 << PROJECT_NAME <<
" error: unknown command: " << vm[
"command"].as<std::string>() <<
"\n\n"
void PrintVersion()
Definition: dds-agent/src/Options.h:53
SOptions()
Definition: dds-agent/src/Options.h:35
#define LOG(severity)
Definition: Logger.h:56
struct dds::agent_cmd::SOptions SOptions_t
dds-commander's container of options
const LPCSTR g_cszReportBugsAddr("Report bugs/comments to fairroot@gsi.de")
Definition: AgentConnectionManager.h:13
dds-commander's container of options
Definition: dds-agent/src/Options.h:27
bool ParseCmdLine(int _argc, char *_argv[], SOptions *_options)
Definition: dds-agent/src/Options.h:62
Definition: dds-agent/src/Options.h:31
static ECommands getCommandByName(const std::string &_name)
Definition: dds-agent/src/Options.h:39
Definition: dds-agent/src/Options.h:33
size_t m_slots
Definition: dds-agent/src/Options.h:50
ECommands m_Command
Definition: dds-agent/src/Options.h:49
Definition: dds-agent/src/Options.h:32
ECommands
Definition: dds-agent/src/Options.h:29