9 #include <boost/program_options/options_description.hpp> 10 #include <boost/program_options/parsers.hpp> 17 namespace bpo = boost::program_options;
34 if (token ==
"getlog")
37 throw bpo::invalid_option_value(token);
45 _out << found->second;
50 namespace agent_cmd_cmd
59 ,
m_sid(boost::uuids::nil_uuid())
72 <<
"DDS configuration" 73 <<
" v" << USER_DEFAULTS_CFG_VERSION <<
"\n" 80 if (
nullptr == _options)
81 throw std::runtime_error(
"Internal error: options' container is empty.");
84 bpo::options_description options(
"dds-agent-cmd options");
85 options.add_options()(
"help,h",
"Produce help message");
86 options.add_options()(
"version,v",
"Version information");
87 options.add_options()(
"session,s", bpo::value<std::string>(),
"DDS Session ID");
88 options.add_options()(
"verbose",
"Verbose output");
89 options.add_options()(
91 bpo::value<EAgentCmdType>(&_options->
m_agentCmd),
92 "The command is a name of a dds-agent-cmd command." 93 " Can be one of the following: getlog.\n" 94 "For user's convenience it is allowed to call dds-agent-cmd without \"--command\" option" 95 " by just specifying the command name directly, like:\ndds-agent-cmd getlog\n\n" 97 " getlog: \tRetrieve log files from worker nodes. Files will be saved in ~/.DDS/log/agents\n");
98 options.add_options()(
"all,a",
"Send command to all active agents");
100 bpo::positional_options_description positional;
101 positional.add(
"command", -1);
104 bpo::variables_map vm;
105 bpo::store(bpo::command_line_parser(_argc, _argv).options(options).positional(positional).run(), vm);
108 if (vm.count(
"help") || vm.empty())
113 if (vm.count(
"version"))
118 if (vm.count(
"verbose"))
133 if (vm.count(
"session"))
135 _options->
m_sid = boost::uuids::string_generator()(vm[
"session"].as<std::string>());
dds-agent-cmd's container of options
Definition: dds-agent-cmd/src/Options.h:53
EAgentCmdType
Definition: dds-agent-cmd/src/Options.h:21
bool m_sendCommandToAllAgents
Definition: dds-agent-cmd/src/Options.h:63
std::istream & operator>>(std::istream &_in, EAgentCmdType &_agentCmd)
Definition: dds-agent-cmd/src/Options.h:30
struct dds::agent_cmd_cmd::SOptions SOptions_t
dds-agent-cmd's container of options
bool m_verbose
Definition: dds-agent-cmd/src/Options.h:65
#define LOG(severity)
Definition: Logger.h:56
const LPCSTR g_cszReportBugsAddr("Report bugs/comments to fairroot@gsi.de")
Definition: AgentConnectionManager.h:13
bool ParseCmdLine(int _argc, char *_argv[], SOptions *_options)
Definition: dds-agent-cmd/src/Options.h:78
void PrintVersion()
Definition: dds-agent-cmd/src/Options.h:69
const mapAgentCmdTypeCodes_t AgentCmdTypeCodeToString
Definition: dds-agent-cmd/src/Options.h:27
EAgentCmdType m_agentCmd
Definition: dds-agent-cmd/src/Options.h:64
std::map< EAgentCmdType, std::string > mapAgentCmdTypeCodes_t
Definition: dds-agent-cmd/src/Options.h:26
std::ostream & operator<<(std::ostream &_out, EAgentCmdType &_agentCmd)
Definition: dds-agent-cmd/src/Options.h:41
SOptions()
Definition: dds-agent-cmd/src/Options.h:55
boost::uuids::uuid m_sid
Definition: dds-agent-cmd/src/Options.h:66