9 #include <boost/program_options/options_description.hpp> 10 #include <boost/program_options/parsers.hpp> 11 #include <boost/property_tree/ptree.hpp> 14 #if BOOST_VERSION < 105900 15 #pragma clang diagnostic push 16 #pragma clang diagnostic ignored "-Wunused-local-typedef" 18 #include <boost/property_tree/ini_parser.hpp> 19 #if BOOST_VERSION < 105900 20 #pragma clang diagnostic pop 23 #include <boost/filesystem/operations.hpp> 24 #include <boost/filesystem/path.hpp> 34 namespace bpo = boost::program_options;
53 else if (_val ==
"run")
65 bpo::validators::check_first_occurrence(_v);
69 const std::string& s = bpo::validators::get_single_string(_values);
71 if (s ==
"all" || s ==
"run")
77 throw bpo::validation_error(bpo::validation_error::invalid_option_value);
86 , m_bRemoveAllStopped(false)
99 <<
"DDS configuration" 100 <<
" v" << USER_DEFAULTS_CFG_VERSION <<
"\n" 107 if (
nullptr == _options)
108 throw std::runtime_error(
"Internal error: options' container is empty.");
111 bpo::options_description options(
"dds-submit options");
112 options.add_options()(
"help,h",
"Produce help message");
113 options.add_options()(
"version,v",
"Version information");
114 options.add_options()(
"list,l",
116 "List DDS sessions.\n\n" 118 " all: list all sessions\n" 119 " run: list only running sessions\n");
120 options.add_options()(
"set-default",
121 bpo::value<std::string>(&_options->
m_sDefault),
122 "Set a giving session id as a default DDS session");
123 options.add_options()(
124 "remove,r", bpo::bool_switch(&_options->
m_bRemoveAllStopped),
"Remove all STOPPED DDS sessions");
125 options.add_options()(
"force,f",
126 bpo::bool_switch(&_options->
m_bForce),
127 "Force commands without prompting for a confirmation.\n" 128 "For example, can be used with the \"remove\" command.");
131 bpo::variables_map vm;
132 bpo::store(bpo::command_line_parser(_argc, _argv).options(options).run(), vm);
136 bpo::variables_map::const_iterator found =
137 find_if(vm.begin(), vm.end(), [](
const bpo::variables_map::value_type& _v) {
138 return (!_v.second.defaulted());
141 if (vm.count(
"help") || vm.end() == found)
146 if (vm.count(
"version"))
SOptions()
Definition: dds-session/src/Options.h:84
std::string m_sDefault
Definition: dds-session/src/Options.h:93
ETypes
Definition: dds-session/src/Options.h:42
dds-commander's container of options
Definition: dds-session/src/Options.h:82
Definition: dds-session/src/Options.h:45
#define LOG(severity)
Definition: Logger.h:54
void validate(boost::any &_v, std::vector< std::string > const &_values, SSessionsSorting *, int)
Definition: dds-session/src/Options.h:62
void PrintVersion()
Definition: dds-session/src/Options.h:96
const LPCSTR g_cszReportBugsAddr("Report bugs/comments to fairroot@gsi.de")
Definition: dds-agent/src/AgentConnectionManager.h:18
SSessionsSorting(const std::string &_val)
Definition: dds-session/src/Options.h:48
ETypes m_typedValue
Definition: dds-session/src/Options.h:59
SSessionsSorting m_ListSessions
Definition: dds-session/src/Options.h:90
bool m_bRemoveAllStopped
Definition: dds-session/src/Options.h:91
Definition: dds-session/src/Options.h:44
std::string m_value
Definition: dds-session/src/Options.h:58
Definition: dds-session/src/Options.h:46
struct dds::submit_cmd::SOptions SOptions_t
dds-commander's container of options
bool m_bForce
Definition: dds-session/src/Options.h:92
Definition: dds-session/src/Options.h:40
bool ParseCmdLine(int _argc, char *_argv[], SOptions *_options)
Definition: dds-session/src/Options.h:105