9 #include <boost/program_options/options_description.hpp> 10 #include <boost/program_options/parsers.hpp> 17 namespace bpo = boost::program_options;
36 else if (_val ==
"run")
91 if (
"stop-all" == _name)
95 if (
"set-default" == _name)
112 <<
"DDS configuration" 113 <<
" v" << USER_DEFAULTS_CFG_VERSION <<
"\n" 120 if (
nullptr == _options)
121 throw std::runtime_error(
"Internal error: options' container is empty.");
124 bpo::options_description options(
"dds-submit options");
125 options.add_options()(
"help,h",
"Produce help message");
126 options.add_options()(
"version,v",
"Version information");
127 options.add_options()(
129 bpo::value<std::vector<std::string>>(),
130 "The command is a name of a dds-sessions command." 131 " Can be one of the following: start, stop, stop-all, list, set-default, and remove.\n\n" 132 "For user's convenience it is allowed to call dds-session without \"--command\" option" 133 " by just specifying the command name directly, like:\ndds-session start or dds-session stop.\n\n" 135 " start : \tStart a new DDS session\n" 136 " stop : \tStop a given DDS session\n" 138 " <session id>: a session ID to stop\n" 139 " stop-all : \tStop All running DDS sessions\n" 140 " list : \tList DDS sessions.\n" 142 " all: list all sessions\n" 143 " run: list only running sessions\n" 144 " set-default : \tSet a giving ID as a default DDS session\n" 146 " <session id>: a session ID to set as default\n" 147 " clean : \tRemove all STOPPED DDS sessions\n");
149 options.add_options()(
"force,f",
150 bpo::bool_switch(&_options->
m_bForce),
151 "Force commands without prompting for a confirmation.\n" 152 "Can be used only with the \"remove\" command.");
153 options.add_options()(
"mixed",
154 bpo::bool_switch(&_options->
m_bMixed),
155 "Use worker package for a mixed environment - workes on Linux and on OS X.\n" 156 "Can be used only with the \"start\" command.");
159 bpo::positional_options_description pd;
160 pd.add(
"command", 2);
163 bpo::variables_map vm;
164 bpo::store(bpo::command_line_parser(_argc, _argv).options(options).positional(pd).run(), vm);
168 bpo::variables_map::const_iterator found =
169 find_if(vm.begin(), vm.end(), [](
const bpo::variables_map::value_type& _v) {
170 return (!_v.second.defaulted());
174 if (vm.count(
"command"))
176 std::vector<std::string> commands = vm[
"command"].as<std::vector<std::string>>();
186 if (commands.size() > 1)
191 if (commands.size() < 2)
194 <<
"Missing argument. The set-default command requares a sessions ID\n\n";
201 if (commands.size() < 2)
221 if (vm.count(
"help") || vm.end() == found)
226 if (vm.count(
"version"))
SSessionsSorting m_ListSessions
Definition: dds-session/src/Options.h:103
Definition: dds-session/src/Options.h:74
bool m_bMixed
Definition: dds-session/src/Options.h:106
Definition: dds-session/src/Options.h:29
SSessionsSorting(const std::string &_val)
Definition: dds-session/src/Options.h:31
Definition: dds-session/src/Options.h:72
ETypes m_typedValue
Definition: dds-session/src/Options.h:42
Definition: dds-session/src/Options.h:23
Definition: dds-session/src/Options.h:28
bool ParseCmdLine(int _argc, char *_argv[], SOptions *_options)
Definition: dds-session/src/Options.h:118
Definition: dds-session/src/Options.h:69
Definition: dds-session/src/Options.h:70
#define LOG(severity)
Definition: Logger.h:56
Definition: dds-session/src/Options.h:27
const LPCSTR g_cszReportBugsAddr("Report bugs/comments to fairroot@gsi.de")
Definition: AgentConnectionManager.h:13
struct dds::session_cmd::SOptions SOptions_t
dds-session's container of options
std::string m_sSessionID
Definition: dds-session/src/Options.h:105
Definition: dds-session/src/Options.h:71
SOptions()
Definition: dds-session/src/Options.h:78
std::string m_value
Definition: dds-session/src/Options.h:41
void PrintVersion()
Definition: dds-session/src/Options.h:109
ECommands m_Command
Definition: dds-session/src/Options.h:102
bool m_bForce
Definition: dds-session/src/Options.h:104
ETypes
Definition: dds-session/src/Options.h:25
static ECommands getCommandByName(const std::string &_name)
Definition: dds-session/src/Options.h:85
dds-session's container of options
Definition: dds-session/src/Options.h:65
Definition: dds-session/src/Options.h:73
Definition: dds-session/src/Options.h:75
ECommands
Definition: dds-session/src/Options.h:67