9 #include <boost/program_options/options_description.hpp> 10 #include <boost/program_options/parsers.hpp> 17 namespace bpo = boost::program_options;
21 namespace commander_cmd
35 ,
m_sid(boost::uuids::nil_uuid())
45 if (
"prep-session" == _name)
61 <<
"DDS configuration" 62 <<
" v" << USER_DEFAULTS_CFG_VERSION <<
"\n" 69 if (
nullptr == _options)
70 throw std::runtime_error(
"Internal error: options' container is empty.");
73 bpo::options_description options(
"dds-commander options");
74 options.add_options()(
"help,h",
"Produce help message");
75 options.add_options()(
"version,v",
"Version information");
76 options.add_options()(
78 bpo::value<std::string>(),
79 "The command is a name of a dds-commander command." 80 " Can be one of the following: start, stop, and prep-session.\n" 81 "For user's convenience it is allowed to call dds-commander without \"--command\" option" 82 " by just specifying the command name directly, like:\ndds-commander start or dds-commander stop.\n\n" 84 " start: \tStart dds-commander daemon\n" 85 " stop: \tStop dds-commander daemon\n" 86 " prep-session: \tPrepares a DDS session and returns new session ID\n");
87 options.add_options()(
"session,s", bpo::value<std::string>(),
"DDS Session ID");
90 bpo::positional_options_description pd;
94 bpo::variables_map vm;
95 bpo::store(bpo::command_line_parser(_argc, _argv).options(options).positional(pd).run(), vm);
98 if (vm.count(
"help") || vm.empty())
103 if (vm.count(
"version"))
110 if (vm.count(
"command"))
125 if (vm.count(
"session"))
127 _options->
m_sid = boost::uuids::string_generator()(vm[
"session"].as<std::string>());
boost::uuids::uuid m_sid
Definition: dds-commander/src/Options.h:55
SOptions()
Definition: dds-commander/src/Options.h:33
ECommands
Definition: dds-commander/src/Options.h:26
bool ParseCmdLine(int _argc, char *_argv[], SOptions *_options)
Definition: dds-commander/src/Options.h:67
#define LOG(severity)
Definition: Logger.h:56
std::string m_sRMS
Definition: dds-commander/src/Options.h:53
std::string m_sTopoFile
Definition: dds-commander/src/Options.h:52
const LPCSTR g_cszReportBugsAddr("Report bugs/comments to fairroot@gsi.de")
struct dds::commander_cmd::SOptions SOptions_t
dds-commander's container of options
Definition: AgentConnectionManager.h:13
Definition: dds-commander/src/Options.h:30
dds-commander's container of options
Definition: dds-commander/src/Options.h:24
void PrintVersion()
Definition: dds-commander/src/Options.h:58
std::string m_sCfgFile
Definition: dds-commander/src/Options.h:54
ECommands m_Command
Definition: dds-commander/src/Options.h:51
static ECommands getCommandByName(const std::string &_name)
Definition: dds-commander/src/Options.h:39
Definition: dds-commander/src/Options.h:29
Definition: dds-commander/src/Options.h:31
Definition: dds-commander/src/Options.h:28