comparison irccdctl/cli.cpp @ 758:445c071e8efb

Irccd: Javascript API cleanup - Place all related code to `js` namespace, - Import duk.hpp and duk.cpp from libduk.
author David Demelier <markand@malikania.fr>
date Thu, 09 Aug 2018 13:07:19 +0200
parents c216d148558d
children 8c44bbcbbab9
comparison
equal deleted inserted replaced
757:97b356010785 758:445c071e8efb
32 32
33 // {{{ helpers 33 // {{{ helpers
34 34
35 namespace { 35 namespace {
36 36
37 template <typename T>
38 auto bind() noexcept -> cli::constructor
39 {
40 return [] () noexcept {
41 return std::make_unique<T>();
42 };
43 }
44
37 auto format(std::vector<std::string> args) -> std::string 45 auto format(std::vector<std::string> args) -> std::string
38 { 46 {
39 auto result = option::read(args, { 47 auto result = option::read(args, {
40 { "-f", true }, 48 { "-f", true },
41 { "--format", true } 49 { "--format", true }
220 } // !namespace 228 } // !namespace
221 229
222 // }}} 230 // }}}
223 231
224 // {{{ cli 232 // {{{ cli
233
234 const std::vector<cli::constructor> cli::registry{
235 bind<plugin_config_cli>(),
236 bind<plugin_info_cli>(),
237 bind<plugin_list_cli>(),
238 bind<plugin_load_cli>(),
239 bind<plugin_reload_cli>(),
240 bind<plugin_unload_cli>(),
241 bind<rule_add_cli>(),
242 bind<rule_edit_cli>(),
243 bind<rule_info_cli>(),
244 bind<rule_info_cli>(),
245 bind<rule_list_cli>(),
246 bind<rule_move_cli>(),
247 bind<rule_remove_cli>(),
248 bind<server_connect_cli>(),
249 bind<server_disconnect_cli>(),
250 bind<server_info_cli>(),
251 bind<server_invite_cli>(),
252 bind<server_join_cli>(),
253 bind<server_kick_cli>(),
254 bind<server_list_cli>(),
255 bind<server_me_cli>(),
256 bind<server_message_cli>(),
257 bind<server_mode_cli>(),
258 bind<server_nick_cli>(),
259 bind<server_notice_cli>(),
260 bind<server_part_cli>(),
261 bind<server_reconnect_cli>(),
262 bind<server_topic_cli>(),
263 bind<watch_cli>()
264 };
225 265
226 void cli::recv_response(ctl::controller& ctl, nlohmann::json req, handler_t handler) 266 void cli::recv_response(ctl::controller& ctl, nlohmann::json req, handler_t handler)
227 { 267 {
228 ctl.read([&ctl, req, handler, this] (auto code, auto message) { 268 ctl.read([&ctl, req, handler, this] (auto code, auto message) {
229 if (code) 269 if (code)