annotate irccd-test/main.cpp @ 850:688f28dd3241

irccd: remove short options, closes #1673 While here, use a brand new home made option parsing.
author David Demelier <markand@malikania.fr>
date Tue, 16 Jul 2019 20:49:36 +0200
parents 1399755352e7
children eac2cc421f49
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
620
c79ae2987955 Irccd: create a brand new irccd-test executable, closes #569 @3h
David Demelier <markand@malikania.fr>
parents:
diff changeset
1 /*
c79ae2987955 Irccd: create a brand new irccd-test executable, closes #569 @3h
David Demelier <markand@malikania.fr>
parents:
diff changeset
2 * main.cpp -- irccd-test main file
c79ae2987955 Irccd: create a brand new irccd-test executable, closes #569 @3h
David Demelier <markand@malikania.fr>
parents:
diff changeset
3 *
824
06cc2f95f479 misc: happy new year!
David Demelier <markand@malikania.fr>
parents: 820
diff changeset
4 * Copyright (c) 2013-2019 David Demelier <markand@malikania.fr>
620
c79ae2987955 Irccd: create a brand new irccd-test executable, closes #569 @3h
David Demelier <markand@malikania.fr>
parents:
diff changeset
5 *
c79ae2987955 Irccd: create a brand new irccd-test executable, closes #569 @3h
David Demelier <markand@malikania.fr>
parents:
diff changeset
6 * Permission to use, copy, modify, and/or distribute this software for any
c79ae2987955 Irccd: create a brand new irccd-test executable, closes #569 @3h
David Demelier <markand@malikania.fr>
parents:
diff changeset
7 * purpose with or without fee is hereby granted, provided that the above
c79ae2987955 Irccd: create a brand new irccd-test executable, closes #569 @3h
David Demelier <markand@malikania.fr>
parents:
diff changeset
8 * copyright notice and this permission notice appear in all copies.
c79ae2987955 Irccd: create a brand new irccd-test executable, closes #569 @3h
David Demelier <markand@malikania.fr>
parents:
diff changeset
9 *
c79ae2987955 Irccd: create a brand new irccd-test executable, closes #569 @3h
David Demelier <markand@malikania.fr>
parents:
diff changeset
10 * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
c79ae2987955 Irccd: create a brand new irccd-test executable, closes #569 @3h
David Demelier <markand@malikania.fr>
parents:
diff changeset
11 * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
c79ae2987955 Irccd: create a brand new irccd-test executable, closes #569 @3h
David Demelier <markand@malikania.fr>
parents:
diff changeset
12 * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
c79ae2987955 Irccd: create a brand new irccd-test executable, closes #569 @3h
David Demelier <markand@malikania.fr>
parents:
diff changeset
13 * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
c79ae2987955 Irccd: create a brand new irccd-test executable, closes #569 @3h
David Demelier <markand@malikania.fr>
parents:
diff changeset
14 * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
c79ae2987955 Irccd: create a brand new irccd-test executable, closes #569 @3h
David Demelier <markand@malikania.fr>
parents:
diff changeset
15 * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
c79ae2987955 Irccd: create a brand new irccd-test executable, closes #569 @3h
David Demelier <markand@malikania.fr>
parents:
diff changeset
16 * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
c79ae2987955 Irccd: create a brand new irccd-test executable, closes #569 @3h
David Demelier <markand@malikania.fr>
parents:
diff changeset
17 */
c79ae2987955 Irccd: create a brand new irccd-test executable, closes #569 @3h
David Demelier <markand@malikania.fr>
parents:
diff changeset
18
c79ae2987955 Irccd: create a brand new irccd-test executable, closes #569 @3h
David Demelier <markand@malikania.fr>
parents:
diff changeset
19 #include <irccd/sysconfig.hpp>
c79ae2987955 Irccd: create a brand new irccd-test executable, closes #569 @3h
David Demelier <markand@malikania.fr>
parents:
diff changeset
20
c79ae2987955 Irccd: create a brand new irccd-test executable, closes #569 @3h
David Demelier <markand@malikania.fr>
parents:
diff changeset
21 #include <algorithm>
c79ae2987955 Irccd: create a brand new irccd-test executable, closes #569 @3h
David Demelier <markand@malikania.fr>
parents:
diff changeset
22 #include <functional>
c79ae2987955 Irccd: create a brand new irccd-test executable, closes #569 @3h
David Demelier <markand@malikania.fr>
parents:
diff changeset
23 #include <iostream>
c79ae2987955 Irccd: create a brand new irccd-test executable, closes #569 @3h
David Demelier <markand@malikania.fr>
parents:
diff changeset
24 #include <string>
c79ae2987955 Irccd: create a brand new irccd-test executable, closes #569 @3h
David Demelier <markand@malikania.fr>
parents:
diff changeset
25 #include <unordered_map>
c79ae2987955 Irccd: create a brand new irccd-test executable, closes #569 @3h
David Demelier <markand@malikania.fr>
parents:
diff changeset
26
c79ae2987955 Irccd: create a brand new irccd-test executable, closes #569 @3h
David Demelier <markand@malikania.fr>
parents:
diff changeset
27 #include <boost/algorithm/string/trim.hpp>
689
c0c2926a35df Irccdctl: cleanup main.cpp
David Demelier <markand@malikania.fr>
parents: 657
diff changeset
28 #include <boost/filesystem.hpp>
729
e08bfc940c54 Core: remove string_util::sprintf
David Demelier <markand@malikania.fr>
parents: 701
diff changeset
29 #include <boost/format.hpp>
620
c79ae2987955 Irccd: create a brand new irccd-test executable, closes #569 @3h
David Demelier <markand@malikania.fr>
parents:
diff changeset
30
701
2007a37d7e1a CMake: prefix options with IRCCD_, #closes 800 @2h
David Demelier <markand@malikania.fr>
parents: 689
diff changeset
31 #if defined(IRCCD_HAVE_LIBEDIT)
773
8c44bbcbbab9 Misc: style, cleanup and update
David Demelier <markand@malikania.fr>
parents: 761
diff changeset
32 # include <histedit.h>
620
c79ae2987955 Irccd: create a brand new irccd-test executable, closes #569 @3h
David Demelier <markand@malikania.fr>
parents:
diff changeset
33 #endif
c79ae2987955 Irccd: create a brand new irccd-test executable, closes #569 @3h
David Demelier <markand@malikania.fr>
parents:
diff changeset
34
c79ae2987955 Irccd: create a brand new irccd-test executable, closes #569 @3h
David Demelier <markand@malikania.fr>
parents:
diff changeset
35 #include <irccd/options.hpp>
c79ae2987955 Irccd: create a brand new irccd-test executable, closes #569 @3h
David Demelier <markand@malikania.fr>
parents:
diff changeset
36 #include <irccd/string_util.hpp>
c79ae2987955 Irccd: create a brand new irccd-test executable, closes #569 @3h
David Demelier <markand@malikania.fr>
parents:
diff changeset
37
c79ae2987955 Irccd: create a brand new irccd-test executable, closes #569 @3h
David Demelier <markand@malikania.fr>
parents:
diff changeset
38 #include <irccd/daemon/dynlib_plugin.hpp>
809
8460b4a34191 misc: reorganize namespaces, closes #952 @4h
David Demelier <markand@malikania.fr>
parents: 797
diff changeset
39 #include <irccd/daemon/bot.hpp>
754
c216d148558d Irccd: remove service directory
David Demelier <markand@malikania.fr>
parents: 746
diff changeset
40 #include <irccd/daemon/plugin_service.hpp>
c216d148558d Irccd: remove service directory
David Demelier <markand@malikania.fr>
parents: 746
diff changeset
41 #include <irccd/daemon/server_service.hpp>
620
c79ae2987955 Irccd: create a brand new irccd-test executable, closes #569 @3h
David Demelier <markand@malikania.fr>
parents:
diff changeset
42
c79ae2987955 Irccd: create a brand new irccd-test executable, closes #569 @3h
David Demelier <markand@malikania.fr>
parents:
diff changeset
43 #include <irccd/test/debug_server.hpp>
c79ae2987955 Irccd: create a brand new irccd-test executable, closes #569 @3h
David Demelier <markand@malikania.fr>
parents:
diff changeset
44
701
2007a37d7e1a CMake: prefix options with IRCCD_, #closes 800 @2h
David Demelier <markand@malikania.fr>
parents: 689
diff changeset
45 #if defined(IRCCD_HAVE_JS)
820
9109f19987fb misc: remove js_ prefix in js namespace
David Demelier <markand@malikania.fr>
parents: 818
diff changeset
46 # include <irccd/js/api.hpp>
9109f19987fb misc: remove js_ prefix in js namespace
David Demelier <markand@malikania.fr>
parents: 818
diff changeset
47 # include <irccd/js/plugin.hpp>
620
c79ae2987955 Irccd: create a brand new irccd-test executable, closes #569 @3h
David Demelier <markand@malikania.fr>
parents:
diff changeset
48 #endif
c79ae2987955 Irccd: create a brand new irccd-test executable, closes #569 @3h
David Demelier <markand@malikania.fr>
parents:
diff changeset
49
729
e08bfc940c54 Core: remove string_util::sprintf
David Demelier <markand@malikania.fr>
parents: 701
diff changeset
50 using boost::format;
e08bfc940c54 Core: remove string_util::sprintf
David Demelier <markand@malikania.fr>
parents: 701
diff changeset
51 using boost::str;
e08bfc940c54 Core: remove string_util::sprintf
David Demelier <markand@malikania.fr>
parents: 701
diff changeset
52
809
8460b4a34191 misc: reorganize namespaces, closes #952 @4h
David Demelier <markand@malikania.fr>
parents: 797
diff changeset
53 using irccd::string_util::split;
620
c79ae2987955 Irccd: create a brand new irccd-test executable, closes #569 @3h
David Demelier <markand@malikania.fr>
parents:
diff changeset
54
809
8460b4a34191 misc: reorganize namespaces, closes #952 @4h
David Demelier <markand@malikania.fr>
parents: 797
diff changeset
55 using irccd::daemon::bot;
8460b4a34191 misc: reorganize namespaces, closes #952 @4h
David Demelier <markand@malikania.fr>
parents: 797
diff changeset
56 using irccd::daemon::names_event;
8460b4a34191 misc: reorganize namespaces, closes #952 @4h
David Demelier <markand@malikania.fr>
parents: 797
diff changeset
57 using irccd::daemon::plugin;
8460b4a34191 misc: reorganize namespaces, closes #952 @4h
David Demelier <markand@malikania.fr>
parents: 797
diff changeset
58 using irccd::daemon::server;
8460b4a34191 misc: reorganize namespaces, closes #952 @4h
David Demelier <markand@malikania.fr>
parents: 797
diff changeset
59 using irccd::daemon::whois_event;
8460b4a34191 misc: reorganize namespaces, closes #952 @4h
David Demelier <markand@malikania.fr>
parents: 797
diff changeset
60 using irccd::daemon::dynlib_plugin_loader;
8460b4a34191 misc: reorganize namespaces, closes #952 @4h
David Demelier <markand@malikania.fr>
parents: 797
diff changeset
61
825
e9da936309df irccd: fix build without Javascript
David Demelier <markand@malikania.fr>
parents: 824
diff changeset
62 #if defined(IRCCD_HAVE_JS)
e9da936309df irccd: fix build without Javascript
David Demelier <markand@malikania.fr>
parents: 824
diff changeset
63 namespace js = irccd::js;
e9da936309df irccd: fix build without Javascript
David Demelier <markand@malikania.fr>
parents: 824
diff changeset
64 #endif
809
8460b4a34191 misc: reorganize namespaces, closes #952 @4h
David Demelier <markand@malikania.fr>
parents: 797
diff changeset
65
8460b4a34191 misc: reorganize namespaces, closes #952 @4h
David Demelier <markand@malikania.fr>
parents: 797
diff changeset
66 namespace irccd::test {
620
c79ae2987955 Irccd: create a brand new irccd-test executable, closes #569 @3h
David Demelier <markand@malikania.fr>
parents:
diff changeset
67
c79ae2987955 Irccd: create a brand new irccd-test executable, closes #569 @3h
David Demelier <markand@malikania.fr>
parents:
diff changeset
68 namespace {
c79ae2987955 Irccd: create a brand new irccd-test executable, closes #569 @3h
David Demelier <markand@malikania.fr>
parents:
diff changeset
69
c79ae2987955 Irccd: create a brand new irccd-test executable, closes #569 @3h
David Demelier <markand@malikania.fr>
parents:
diff changeset
70 boost::asio::io_service io;
c79ae2987955 Irccd: create a brand new irccd-test executable, closes #569 @3h
David Demelier <markand@malikania.fr>
parents:
diff changeset
71
809
8460b4a34191 misc: reorganize namespaces, closes #952 @4h
David Demelier <markand@malikania.fr>
parents: 797
diff changeset
72 std::unique_ptr<bot> daemon;
620
c79ae2987955 Irccd: create a brand new irccd-test executable, closes #569 @3h
David Demelier <markand@malikania.fr>
parents:
diff changeset
73 std::shared_ptr<plugin> plugin;
c79ae2987955 Irccd: create a brand new irccd-test executable, closes #569 @3h
David Demelier <markand@malikania.fr>
parents:
diff changeset
74
689
c0c2926a35df Irccdctl: cleanup main.cpp
David Demelier <markand@malikania.fr>
parents: 657
diff changeset
75 // {{{ function table
620
c79ae2987955 Irccd: create a brand new irccd-test executable, closes #569 @3h
David Demelier <markand@malikania.fr>
parents:
diff changeset
76
c79ae2987955 Irccd: create a brand new irccd-test executable, closes #569 @3h
David Demelier <markand@malikania.fr>
parents:
diff changeset
77 /*
689
c0c2926a35df Irccdctl: cleanup main.cpp
David Demelier <markand@malikania.fr>
parents: 657
diff changeset
78 * Forward declarations of handlers.
620
c79ae2987955 Irccd: create a brand new irccd-test executable, closes #569 @3h
David Demelier <markand@malikania.fr>
parents:
diff changeset
79 */
689
c0c2926a35df Irccdctl: cleanup main.cpp
David Demelier <markand@malikania.fr>
parents: 657
diff changeset
80 void on_command(const std::string&);
c0c2926a35df Irccdctl: cleanup main.cpp
David Demelier <markand@malikania.fr>
parents: 657
diff changeset
81 void on_connect(const std::string&);
c0c2926a35df Irccdctl: cleanup main.cpp
David Demelier <markand@malikania.fr>
parents: 657
diff changeset
82 void on_invite(const std::string&);
c0c2926a35df Irccdctl: cleanup main.cpp
David Demelier <markand@malikania.fr>
parents: 657
diff changeset
83 void on_join(const std::string&);
c0c2926a35df Irccdctl: cleanup main.cpp
David Demelier <markand@malikania.fr>
parents: 657
diff changeset
84 void on_kick(const std::string&);
c0c2926a35df Irccdctl: cleanup main.cpp
David Demelier <markand@malikania.fr>
parents: 657
diff changeset
85 void on_load(const std::string&);
c0c2926a35df Irccdctl: cleanup main.cpp
David Demelier <markand@malikania.fr>
parents: 657
diff changeset
86 void on_me(const std::string&);
c0c2926a35df Irccdctl: cleanup main.cpp
David Demelier <markand@malikania.fr>
parents: 657
diff changeset
87 void on_message(const std::string&);
c0c2926a35df Irccdctl: cleanup main.cpp
David Demelier <markand@malikania.fr>
parents: 657
diff changeset
88 void on_mode(const std::string&);
c0c2926a35df Irccdctl: cleanup main.cpp
David Demelier <markand@malikania.fr>
parents: 657
diff changeset
89 void on_names(const std::string&);
c0c2926a35df Irccdctl: cleanup main.cpp
David Demelier <markand@malikania.fr>
parents: 657
diff changeset
90 void on_nick(const std::string&);
c0c2926a35df Irccdctl: cleanup main.cpp
David Demelier <markand@malikania.fr>
parents: 657
diff changeset
91 void on_notice(const std::string&);
c0c2926a35df Irccdctl: cleanup main.cpp
David Demelier <markand@malikania.fr>
parents: 657
diff changeset
92 void on_part(const std::string&);
c0c2926a35df Irccdctl: cleanup main.cpp
David Demelier <markand@malikania.fr>
parents: 657
diff changeset
93 void on_reload(const std::string&);
c0c2926a35df Irccdctl: cleanup main.cpp
David Demelier <markand@malikania.fr>
parents: 657
diff changeset
94 void on_topic(const std::string&);
c0c2926a35df Irccdctl: cleanup main.cpp
David Demelier <markand@malikania.fr>
parents: 657
diff changeset
95 void on_unload(const std::string&);
c0c2926a35df Irccdctl: cleanup main.cpp
David Demelier <markand@malikania.fr>
parents: 657
diff changeset
96 void on_whois(const std::string&);
620
c79ae2987955 Irccd: create a brand new irccd-test executable, closes #569 @3h
David Demelier <markand@malikania.fr>
parents:
diff changeset
97
c79ae2987955 Irccd: create a brand new irccd-test executable, closes #569 @3h
David Demelier <markand@malikania.fr>
parents:
diff changeset
98 /*
c79ae2987955 Irccd: create a brand new irccd-test executable, closes #569 @3h
David Demelier <markand@malikania.fr>
parents:
diff changeset
99 * Table of user functions.
c79ae2987955 Irccd: create a brand new irccd-test executable, closes #569 @3h
David Demelier <markand@malikania.fr>
parents:
diff changeset
100 */
c79ae2987955 Irccd: create a brand new irccd-test executable, closes #569 @3h
David Demelier <markand@malikania.fr>
parents:
diff changeset
101 using function = std::function<void (const std::string&)>;
c79ae2987955 Irccd: create a brand new irccd-test executable, closes #569 @3h
David Demelier <markand@malikania.fr>
parents:
diff changeset
102 using functions = std::unordered_map<std::string, function>;
c79ae2987955 Irccd: create a brand new irccd-test executable, closes #569 @3h
David Demelier <markand@malikania.fr>
parents:
diff changeset
103
c79ae2987955 Irccd: create a brand new irccd-test executable, closes #569 @3h
David Demelier <markand@malikania.fr>
parents:
diff changeset
104 static const functions list{
773
8c44bbcbbab9 Misc: style, cleanup and update
David Demelier <markand@malikania.fr>
parents: 761
diff changeset
105 { "onCommand", &(on_command) },
8c44bbcbbab9 Misc: style, cleanup and update
David Demelier <markand@malikania.fr>
parents: 761
diff changeset
106 { "onConnect", &(on_connect) },
8c44bbcbbab9 Misc: style, cleanup and update
David Demelier <markand@malikania.fr>
parents: 761
diff changeset
107 { "onInvite", &(on_invite) },
8c44bbcbbab9 Misc: style, cleanup and update
David Demelier <markand@malikania.fr>
parents: 761
diff changeset
108 { "onJoin", &(on_join) },
8c44bbcbbab9 Misc: style, cleanup and update
David Demelier <markand@malikania.fr>
parents: 761
diff changeset
109 { "onKick", &(on_kick) },
8c44bbcbbab9 Misc: style, cleanup and update
David Demelier <markand@malikania.fr>
parents: 761
diff changeset
110 { "onLoad", &(on_load) },
8c44bbcbbab9 Misc: style, cleanup and update
David Demelier <markand@malikania.fr>
parents: 761
diff changeset
111 { "onMe", &(on_me) },
8c44bbcbbab9 Misc: style, cleanup and update
David Demelier <markand@malikania.fr>
parents: 761
diff changeset
112 { "onMessage", &(on_message) },
8c44bbcbbab9 Misc: style, cleanup and update
David Demelier <markand@malikania.fr>
parents: 761
diff changeset
113 { "onMode", &(on_mode) },
8c44bbcbbab9 Misc: style, cleanup and update
David Demelier <markand@malikania.fr>
parents: 761
diff changeset
114 { "onNames", &(on_names) },
8c44bbcbbab9 Misc: style, cleanup and update
David Demelier <markand@malikania.fr>
parents: 761
diff changeset
115 { "onNick", &(on_nick) },
8c44bbcbbab9 Misc: style, cleanup and update
David Demelier <markand@malikania.fr>
parents: 761
diff changeset
116 { "onNotice", &(on_notice) },
8c44bbcbbab9 Misc: style, cleanup and update
David Demelier <markand@malikania.fr>
parents: 761
diff changeset
117 { "onPart", &(on_part) },
8c44bbcbbab9 Misc: style, cleanup and update
David Demelier <markand@malikania.fr>
parents: 761
diff changeset
118 { "onReload", &(on_reload) },
8c44bbcbbab9 Misc: style, cleanup and update
David Demelier <markand@malikania.fr>
parents: 761
diff changeset
119 { "onTopic", &(on_topic) },
8c44bbcbbab9 Misc: style, cleanup and update
David Demelier <markand@malikania.fr>
parents: 761
diff changeset
120 { "onUnload", &(on_unload) },
8c44bbcbbab9 Misc: style, cleanup and update
David Demelier <markand@malikania.fr>
parents: 761
diff changeset
121 { "onWhois", &(on_whois) }
620
c79ae2987955 Irccd: create a brand new irccd-test executable, closes #569 @3h
David Demelier <markand@malikania.fr>
parents:
diff changeset
122 };
c79ae2987955 Irccd: create a brand new irccd-test executable, closes #569 @3h
David Demelier <markand@malikania.fr>
parents:
diff changeset
123
689
c0c2926a35df Irccdctl: cleanup main.cpp
David Demelier <markand@malikania.fr>
parents: 657
diff changeset
124 // }}}
c0c2926a35df Irccdctl: cleanup main.cpp
David Demelier <markand@malikania.fr>
parents: 657
diff changeset
125
c0c2926a35df Irccdctl: cleanup main.cpp
David Demelier <markand@malikania.fr>
parents: 657
diff changeset
126 // {{{ usage
c0c2926a35df Irccdctl: cleanup main.cpp
David Demelier <markand@malikania.fr>
parents: 657
diff changeset
127
850
688f28dd3241 irccd: remove short options, closes #1673
David Demelier <markand@malikania.fr>
parents: 841
diff changeset
128 [[noreturn]]
689
c0c2926a35df Irccdctl: cleanup main.cpp
David Demelier <markand@malikania.fr>
parents: 657
diff changeset
129 void usage()
c0c2926a35df Irccdctl: cleanup main.cpp
David Demelier <markand@malikania.fr>
parents: 657
diff changeset
130 {
773
8c44bbcbbab9 Misc: style, cleanup and update
David Demelier <markand@malikania.fr>
parents: 761
diff changeset
131 std::cerr << "usage: irccd-test [-c config] plugin-name" << std::endl;
8c44bbcbbab9 Misc: style, cleanup and update
David Demelier <markand@malikania.fr>
parents: 761
diff changeset
132 std::exit(1);
689
c0c2926a35df Irccdctl: cleanup main.cpp
David Demelier <markand@malikania.fr>
parents: 657
diff changeset
133 }
c0c2926a35df Irccdctl: cleanup main.cpp
David Demelier <markand@malikania.fr>
parents: 657
diff changeset
134
c0c2926a35df Irccdctl: cleanup main.cpp
David Demelier <markand@malikania.fr>
parents: 657
diff changeset
135 // }}}
c0c2926a35df Irccdctl: cleanup main.cpp
David Demelier <markand@malikania.fr>
parents: 657
diff changeset
136
c0c2926a35df Irccdctl: cleanup main.cpp
David Demelier <markand@malikania.fr>
parents: 657
diff changeset
137 // {{{ get_server
c0c2926a35df Irccdctl: cleanup main.cpp
David Demelier <markand@malikania.fr>
parents: 657
diff changeset
138
773
8c44bbcbbab9 Misc: style, cleanup and update
David Demelier <markand@malikania.fr>
parents: 761
diff changeset
139 auto get_server(std::string name) -> std::shared_ptr<server>
689
c0c2926a35df Irccdctl: cleanup main.cpp
David Demelier <markand@malikania.fr>
parents: 657
diff changeset
140 {
773
8c44bbcbbab9 Misc: style, cleanup and update
David Demelier <markand@malikania.fr>
parents: 761
diff changeset
141 name = boost::algorithm::trim_copy(name);
689
c0c2926a35df Irccdctl: cleanup main.cpp
David Demelier <markand@malikania.fr>
parents: 657
diff changeset
142
773
8c44bbcbbab9 Misc: style, cleanup and update
David Demelier <markand@malikania.fr>
parents: 761
diff changeset
143 if (name.empty())
8c44bbcbbab9 Misc: style, cleanup and update
David Demelier <markand@malikania.fr>
parents: 761
diff changeset
144 name = "test";
689
c0c2926a35df Irccdctl: cleanup main.cpp
David Demelier <markand@malikania.fr>
parents: 657
diff changeset
145
841
1399755352e7 irccd: use appropriate function names in bot
David Demelier <markand@malikania.fr>
parents: 825
diff changeset
146 auto s = daemon->get_servers().get(name);
689
c0c2926a35df Irccdctl: cleanup main.cpp
David Demelier <markand@malikania.fr>
parents: 657
diff changeset
147
773
8c44bbcbbab9 Misc: style, cleanup and update
David Demelier <markand@malikania.fr>
parents: 761
diff changeset
148 if (!s) {
8c44bbcbbab9 Misc: style, cleanup and update
David Demelier <markand@malikania.fr>
parents: 761
diff changeset
149 s = std::make_shared<debug_server>(io, std::move(name), "localhost");
841
1399755352e7 irccd: use appropriate function names in bot
David Demelier <markand@malikania.fr>
parents: 825
diff changeset
150 daemon->get_servers().add(s);
773
8c44bbcbbab9 Misc: style, cleanup and update
David Demelier <markand@malikania.fr>
parents: 761
diff changeset
151 }
689
c0c2926a35df Irccdctl: cleanup main.cpp
David Demelier <markand@malikania.fr>
parents: 657
diff changeset
152
773
8c44bbcbbab9 Misc: style, cleanup and update
David Demelier <markand@malikania.fr>
parents: 761
diff changeset
153 return s;
689
c0c2926a35df Irccdctl: cleanup main.cpp
David Demelier <markand@malikania.fr>
parents: 657
diff changeset
154 }
c0c2926a35df Irccdctl: cleanup main.cpp
David Demelier <markand@malikania.fr>
parents: 657
diff changeset
155
c0c2926a35df Irccdctl: cleanup main.cpp
David Demelier <markand@malikania.fr>
parents: 657
diff changeset
156 // }}}
c0c2926a35df Irccdctl: cleanup main.cpp
David Demelier <markand@malikania.fr>
parents: 657
diff changeset
157
c0c2926a35df Irccdctl: cleanup main.cpp
David Demelier <markand@malikania.fr>
parents: 657
diff changeset
158 // {{{ get_arg
c0c2926a35df Irccdctl: cleanup main.cpp
David Demelier <markand@malikania.fr>
parents: 657
diff changeset
159
773
8c44bbcbbab9 Misc: style, cleanup and update
David Demelier <markand@malikania.fr>
parents: 761
diff changeset
160 auto get_arg(const std::vector<std::string>& args, unsigned index) -> std::string
689
c0c2926a35df Irccdctl: cleanup main.cpp
David Demelier <markand@malikania.fr>
parents: 657
diff changeset
161 {
773
8c44bbcbbab9 Misc: style, cleanup and update
David Demelier <markand@malikania.fr>
parents: 761
diff changeset
162 if (index >= args.size())
8c44bbcbbab9 Misc: style, cleanup and update
David Demelier <markand@malikania.fr>
parents: 761
diff changeset
163 return "";
689
c0c2926a35df Irccdctl: cleanup main.cpp
David Demelier <markand@malikania.fr>
parents: 657
diff changeset
164
773
8c44bbcbbab9 Misc: style, cleanup and update
David Demelier <markand@malikania.fr>
parents: 761
diff changeset
165 return args[index];
689
c0c2926a35df Irccdctl: cleanup main.cpp
David Demelier <markand@malikania.fr>
parents: 657
diff changeset
166 }
c0c2926a35df Irccdctl: cleanup main.cpp
David Demelier <markand@malikania.fr>
parents: 657
diff changeset
167
c0c2926a35df Irccdctl: cleanup main.cpp
David Demelier <markand@malikania.fr>
parents: 657
diff changeset
168 // }}}
c0c2926a35df Irccdctl: cleanup main.cpp
David Demelier <markand@malikania.fr>
parents: 657
diff changeset
169
c0c2926a35df Irccdctl: cleanup main.cpp
David Demelier <markand@malikania.fr>
parents: 657
diff changeset
170 // {{{ on_command
c0c2926a35df Irccdctl: cleanup main.cpp
David Demelier <markand@malikania.fr>
parents: 657
diff changeset
171
c0c2926a35df Irccdctl: cleanup main.cpp
David Demelier <markand@malikania.fr>
parents: 657
diff changeset
172 /*
c0c2926a35df Irccdctl: cleanup main.cpp
David Demelier <markand@malikania.fr>
parents: 657
diff changeset
173 * onCommand server origin channel message
c0c2926a35df Irccdctl: cleanup main.cpp
David Demelier <markand@malikania.fr>
parents: 657
diff changeset
174 */
c0c2926a35df Irccdctl: cleanup main.cpp
David Demelier <markand@malikania.fr>
parents: 657
diff changeset
175 void on_command(const std::string& data)
c0c2926a35df Irccdctl: cleanup main.cpp
David Demelier <markand@malikania.fr>
parents: 657
diff changeset
176 {
809
8460b4a34191 misc: reorganize namespaces, closes #952 @4h
David Demelier <markand@malikania.fr>
parents: 797
diff changeset
177 const auto args = split(data, " ", 4);
689
c0c2926a35df Irccdctl: cleanup main.cpp
David Demelier <markand@malikania.fr>
parents: 657
diff changeset
178
773
8c44bbcbbab9 Misc: style, cleanup and update
David Demelier <markand@malikania.fr>
parents: 761
diff changeset
179 plugin->handle_command(*daemon, {
8c44bbcbbab9 Misc: style, cleanup and update
David Demelier <markand@malikania.fr>
parents: 761
diff changeset
180 get_server(get_arg(args, 0)),
8c44bbcbbab9 Misc: style, cleanup and update
David Demelier <markand@malikania.fr>
parents: 761
diff changeset
181 get_arg(args, 1),
8c44bbcbbab9 Misc: style, cleanup and update
David Demelier <markand@malikania.fr>
parents: 761
diff changeset
182 get_arg(args, 2),
8c44bbcbbab9 Misc: style, cleanup and update
David Demelier <markand@malikania.fr>
parents: 761
diff changeset
183 get_arg(args, 3)
8c44bbcbbab9 Misc: style, cleanup and update
David Demelier <markand@malikania.fr>
parents: 761
diff changeset
184 });
689
c0c2926a35df Irccdctl: cleanup main.cpp
David Demelier <markand@malikania.fr>
parents: 657
diff changeset
185 }
c0c2926a35df Irccdctl: cleanup main.cpp
David Demelier <markand@malikania.fr>
parents: 657
diff changeset
186
c0c2926a35df Irccdctl: cleanup main.cpp
David Demelier <markand@malikania.fr>
parents: 657
diff changeset
187 // }}}
c0c2926a35df Irccdctl: cleanup main.cpp
David Demelier <markand@malikania.fr>
parents: 657
diff changeset
188
c0c2926a35df Irccdctl: cleanup main.cpp
David Demelier <markand@malikania.fr>
parents: 657
diff changeset
189 // {{{ on_connect
c0c2926a35df Irccdctl: cleanup main.cpp
David Demelier <markand@malikania.fr>
parents: 657
diff changeset
190
c0c2926a35df Irccdctl: cleanup main.cpp
David Demelier <markand@malikania.fr>
parents: 657
diff changeset
191 /*
c0c2926a35df Irccdctl: cleanup main.cpp
David Demelier <markand@malikania.fr>
parents: 657
diff changeset
192 * onConnect server
c0c2926a35df Irccdctl: cleanup main.cpp
David Demelier <markand@malikania.fr>
parents: 657
diff changeset
193 */
c0c2926a35df Irccdctl: cleanup main.cpp
David Demelier <markand@malikania.fr>
parents: 657
diff changeset
194 void on_connect(const std::string& data)
c0c2926a35df Irccdctl: cleanup main.cpp
David Demelier <markand@malikania.fr>
parents: 657
diff changeset
195 {
809
8460b4a34191 misc: reorganize namespaces, closes #952 @4h
David Demelier <markand@malikania.fr>
parents: 797
diff changeset
196 const auto args = split(data, " ");
689
c0c2926a35df Irccdctl: cleanup main.cpp
David Demelier <markand@malikania.fr>
parents: 657
diff changeset
197
773
8c44bbcbbab9 Misc: style, cleanup and update
David Demelier <markand@malikania.fr>
parents: 761
diff changeset
198 plugin->handle_connect(*daemon, {get_server(get_arg(args, 0))});
689
c0c2926a35df Irccdctl: cleanup main.cpp
David Demelier <markand@malikania.fr>
parents: 657
diff changeset
199 }
c0c2926a35df Irccdctl: cleanup main.cpp
David Demelier <markand@malikania.fr>
parents: 657
diff changeset
200
c0c2926a35df Irccdctl: cleanup main.cpp
David Demelier <markand@malikania.fr>
parents: 657
diff changeset
201 // }}}
c0c2926a35df Irccdctl: cleanup main.cpp
David Demelier <markand@malikania.fr>
parents: 657
diff changeset
202
c0c2926a35df Irccdctl: cleanup main.cpp
David Demelier <markand@malikania.fr>
parents: 657
diff changeset
203 // {{{ on_invite
c0c2926a35df Irccdctl: cleanup main.cpp
David Demelier <markand@malikania.fr>
parents: 657
diff changeset
204
c0c2926a35df Irccdctl: cleanup main.cpp
David Demelier <markand@malikania.fr>
parents: 657
diff changeset
205 /*
c0c2926a35df Irccdctl: cleanup main.cpp
David Demelier <markand@malikania.fr>
parents: 657
diff changeset
206 * onInvite server origin channel target
c0c2926a35df Irccdctl: cleanup main.cpp
David Demelier <markand@malikania.fr>
parents: 657
diff changeset
207 */
c0c2926a35df Irccdctl: cleanup main.cpp
David Demelier <markand@malikania.fr>
parents: 657
diff changeset
208 void on_invite(const std::string& data)
c0c2926a35df Irccdctl: cleanup main.cpp
David Demelier <markand@malikania.fr>
parents: 657
diff changeset
209 {
809
8460b4a34191 misc: reorganize namespaces, closes #952 @4h
David Demelier <markand@malikania.fr>
parents: 797
diff changeset
210 const auto args = split(data, " ");
689
c0c2926a35df Irccdctl: cleanup main.cpp
David Demelier <markand@malikania.fr>
parents: 657
diff changeset
211
773
8c44bbcbbab9 Misc: style, cleanup and update
David Demelier <markand@malikania.fr>
parents: 761
diff changeset
212 plugin->handle_invite(*daemon, {
8c44bbcbbab9 Misc: style, cleanup and update
David Demelier <markand@malikania.fr>
parents: 761
diff changeset
213 get_server(get_arg(args, 0)),
8c44bbcbbab9 Misc: style, cleanup and update
David Demelier <markand@malikania.fr>
parents: 761
diff changeset
214 get_arg(args, 1),
8c44bbcbbab9 Misc: style, cleanup and update
David Demelier <markand@malikania.fr>
parents: 761
diff changeset
215 get_arg(args, 2),
8c44bbcbbab9 Misc: style, cleanup and update
David Demelier <markand@malikania.fr>
parents: 761
diff changeset
216 get_arg(args, 3),
8c44bbcbbab9 Misc: style, cleanup and update
David Demelier <markand@malikania.fr>
parents: 761
diff changeset
217 });
689
c0c2926a35df Irccdctl: cleanup main.cpp
David Demelier <markand@malikania.fr>
parents: 657
diff changeset
218 }
c0c2926a35df Irccdctl: cleanup main.cpp
David Demelier <markand@malikania.fr>
parents: 657
diff changeset
219
c0c2926a35df Irccdctl: cleanup main.cpp
David Demelier <markand@malikania.fr>
parents: 657
diff changeset
220 // }}}
c0c2926a35df Irccdctl: cleanup main.cpp
David Demelier <markand@malikania.fr>
parents: 657
diff changeset
221
c0c2926a35df Irccdctl: cleanup main.cpp
David Demelier <markand@malikania.fr>
parents: 657
diff changeset
222 // {{{ on_join
c0c2926a35df Irccdctl: cleanup main.cpp
David Demelier <markand@malikania.fr>
parents: 657
diff changeset
223
c0c2926a35df Irccdctl: cleanup main.cpp
David Demelier <markand@malikania.fr>
parents: 657
diff changeset
224 /*
c0c2926a35df Irccdctl: cleanup main.cpp
David Demelier <markand@malikania.fr>
parents: 657
diff changeset
225 * onJoin server origin channel
c0c2926a35df Irccdctl: cleanup main.cpp
David Demelier <markand@malikania.fr>
parents: 657
diff changeset
226 */
c0c2926a35df Irccdctl: cleanup main.cpp
David Demelier <markand@malikania.fr>
parents: 657
diff changeset
227 void on_join(const std::string& data)
c0c2926a35df Irccdctl: cleanup main.cpp
David Demelier <markand@malikania.fr>
parents: 657
diff changeset
228 {
809
8460b4a34191 misc: reorganize namespaces, closes #952 @4h
David Demelier <markand@malikania.fr>
parents: 797
diff changeset
229 const auto args = split(data, " ");
689
c0c2926a35df Irccdctl: cleanup main.cpp
David Demelier <markand@malikania.fr>
parents: 657
diff changeset
230
773
8c44bbcbbab9 Misc: style, cleanup and update
David Demelier <markand@malikania.fr>
parents: 761
diff changeset
231 plugin->handle_join(*daemon, {
8c44bbcbbab9 Misc: style, cleanup and update
David Demelier <markand@malikania.fr>
parents: 761
diff changeset
232 get_server(get_arg(args, 0)),
8c44bbcbbab9 Misc: style, cleanup and update
David Demelier <markand@malikania.fr>
parents: 761
diff changeset
233 get_arg(args, 1),
8c44bbcbbab9 Misc: style, cleanup and update
David Demelier <markand@malikania.fr>
parents: 761
diff changeset
234 get_arg(args, 2)
8c44bbcbbab9 Misc: style, cleanup and update
David Demelier <markand@malikania.fr>
parents: 761
diff changeset
235 });
689
c0c2926a35df Irccdctl: cleanup main.cpp
David Demelier <markand@malikania.fr>
parents: 657
diff changeset
236 }
c0c2926a35df Irccdctl: cleanup main.cpp
David Demelier <markand@malikania.fr>
parents: 657
diff changeset
237
c0c2926a35df Irccdctl: cleanup main.cpp
David Demelier <markand@malikania.fr>
parents: 657
diff changeset
238 // }}}
c0c2926a35df Irccdctl: cleanup main.cpp
David Demelier <markand@malikania.fr>
parents: 657
diff changeset
239
c0c2926a35df Irccdctl: cleanup main.cpp
David Demelier <markand@malikania.fr>
parents: 657
diff changeset
240 // {{{ on_kick
c0c2926a35df Irccdctl: cleanup main.cpp
David Demelier <markand@malikania.fr>
parents: 657
diff changeset
241
c0c2926a35df Irccdctl: cleanup main.cpp
David Demelier <markand@malikania.fr>
parents: 657
diff changeset
242 /*
c0c2926a35df Irccdctl: cleanup main.cpp
David Demelier <markand@malikania.fr>
parents: 657
diff changeset
243 * onKick server origin channel reason
c0c2926a35df Irccdctl: cleanup main.cpp
David Demelier <markand@malikania.fr>
parents: 657
diff changeset
244 */
c0c2926a35df Irccdctl: cleanup main.cpp
David Demelier <markand@malikania.fr>
parents: 657
diff changeset
245 void on_kick(const std::string& data)
c0c2926a35df Irccdctl: cleanup main.cpp
David Demelier <markand@malikania.fr>
parents: 657
diff changeset
246 {
809
8460b4a34191 misc: reorganize namespaces, closes #952 @4h
David Demelier <markand@malikania.fr>
parents: 797
diff changeset
247 const auto args = split(data, " ", 5);
689
c0c2926a35df Irccdctl: cleanup main.cpp
David Demelier <markand@malikania.fr>
parents: 657
diff changeset
248
773
8c44bbcbbab9 Misc: style, cleanup and update
David Demelier <markand@malikania.fr>
parents: 761
diff changeset
249 plugin->handle_kick(*daemon, {
8c44bbcbbab9 Misc: style, cleanup and update
David Demelier <markand@malikania.fr>
parents: 761
diff changeset
250 get_server(get_arg(args, 0)),
8c44bbcbbab9 Misc: style, cleanup and update
David Demelier <markand@malikania.fr>
parents: 761
diff changeset
251 get_arg(args, 1),
8c44bbcbbab9 Misc: style, cleanup and update
David Demelier <markand@malikania.fr>
parents: 761
diff changeset
252 get_arg(args, 2),
8c44bbcbbab9 Misc: style, cleanup and update
David Demelier <markand@malikania.fr>
parents: 761
diff changeset
253 get_arg(args, 3),
8c44bbcbbab9 Misc: style, cleanup and update
David Demelier <markand@malikania.fr>
parents: 761
diff changeset
254 get_arg(args, 4),
8c44bbcbbab9 Misc: style, cleanup and update
David Demelier <markand@malikania.fr>
parents: 761
diff changeset
255 });
689
c0c2926a35df Irccdctl: cleanup main.cpp
David Demelier <markand@malikania.fr>
parents: 657
diff changeset
256 }
c0c2926a35df Irccdctl: cleanup main.cpp
David Demelier <markand@malikania.fr>
parents: 657
diff changeset
257
c0c2926a35df Irccdctl: cleanup main.cpp
David Demelier <markand@malikania.fr>
parents: 657
diff changeset
258 // }}}
c0c2926a35df Irccdctl: cleanup main.cpp
David Demelier <markand@malikania.fr>
parents: 657
diff changeset
259
c0c2926a35df Irccdctl: cleanup main.cpp
David Demelier <markand@malikania.fr>
parents: 657
diff changeset
260 // {{{ on_load
c0c2926a35df Irccdctl: cleanup main.cpp
David Demelier <markand@malikania.fr>
parents: 657
diff changeset
261
c0c2926a35df Irccdctl: cleanup main.cpp
David Demelier <markand@malikania.fr>
parents: 657
diff changeset
262 /*
c0c2926a35df Irccdctl: cleanup main.cpp
David Demelier <markand@malikania.fr>
parents: 657
diff changeset
263 * onLoad
c0c2926a35df Irccdctl: cleanup main.cpp
David Demelier <markand@malikania.fr>
parents: 657
diff changeset
264 */
c0c2926a35df Irccdctl: cleanup main.cpp
David Demelier <markand@malikania.fr>
parents: 657
diff changeset
265 void on_load(const std::string&)
c0c2926a35df Irccdctl: cleanup main.cpp
David Demelier <markand@malikania.fr>
parents: 657
diff changeset
266 {
773
8c44bbcbbab9 Misc: style, cleanup and update
David Demelier <markand@malikania.fr>
parents: 761
diff changeset
267 plugin->handle_load(*daemon);
689
c0c2926a35df Irccdctl: cleanup main.cpp
David Demelier <markand@malikania.fr>
parents: 657
diff changeset
268 }
c0c2926a35df Irccdctl: cleanup main.cpp
David Demelier <markand@malikania.fr>
parents: 657
diff changeset
269
c0c2926a35df Irccdctl: cleanup main.cpp
David Demelier <markand@malikania.fr>
parents: 657
diff changeset
270 // }}}
c0c2926a35df Irccdctl: cleanup main.cpp
David Demelier <markand@malikania.fr>
parents: 657
diff changeset
271
c0c2926a35df Irccdctl: cleanup main.cpp
David Demelier <markand@malikania.fr>
parents: 657
diff changeset
272 // {{{ on_me
c0c2926a35df Irccdctl: cleanup main.cpp
David Demelier <markand@malikania.fr>
parents: 657
diff changeset
273
c0c2926a35df Irccdctl: cleanup main.cpp
David Demelier <markand@malikania.fr>
parents: 657
diff changeset
274 /*
c0c2926a35df Irccdctl: cleanup main.cpp
David Demelier <markand@malikania.fr>
parents: 657
diff changeset
275 * onMe server origin channel message
c0c2926a35df Irccdctl: cleanup main.cpp
David Demelier <markand@malikania.fr>
parents: 657
diff changeset
276 */
c0c2926a35df Irccdctl: cleanup main.cpp
David Demelier <markand@malikania.fr>
parents: 657
diff changeset
277 void on_me(const std::string& data)
c0c2926a35df Irccdctl: cleanup main.cpp
David Demelier <markand@malikania.fr>
parents: 657
diff changeset
278 {
809
8460b4a34191 misc: reorganize namespaces, closes #952 @4h
David Demelier <markand@malikania.fr>
parents: 797
diff changeset
279 const auto args = split(data, " ", 4);
689
c0c2926a35df Irccdctl: cleanup main.cpp
David Demelier <markand@malikania.fr>
parents: 657
diff changeset
280
773
8c44bbcbbab9 Misc: style, cleanup and update
David Demelier <markand@malikania.fr>
parents: 761
diff changeset
281 plugin->handle_me(*daemon, {
8c44bbcbbab9 Misc: style, cleanup and update
David Demelier <markand@malikania.fr>
parents: 761
diff changeset
282 get_server(get_arg(args, 0)),
8c44bbcbbab9 Misc: style, cleanup and update
David Demelier <markand@malikania.fr>
parents: 761
diff changeset
283 get_arg(args, 1),
8c44bbcbbab9 Misc: style, cleanup and update
David Demelier <markand@malikania.fr>
parents: 761
diff changeset
284 get_arg(args, 2),
8c44bbcbbab9 Misc: style, cleanup and update
David Demelier <markand@malikania.fr>
parents: 761
diff changeset
285 get_arg(args, 3)
8c44bbcbbab9 Misc: style, cleanup and update
David Demelier <markand@malikania.fr>
parents: 761
diff changeset
286 });
689
c0c2926a35df Irccdctl: cleanup main.cpp
David Demelier <markand@malikania.fr>
parents: 657
diff changeset
287 }
c0c2926a35df Irccdctl: cleanup main.cpp
David Demelier <markand@malikania.fr>
parents: 657
diff changeset
288
c0c2926a35df Irccdctl: cleanup main.cpp
David Demelier <markand@malikania.fr>
parents: 657
diff changeset
289 // }}}
c0c2926a35df Irccdctl: cleanup main.cpp
David Demelier <markand@malikania.fr>
parents: 657
diff changeset
290
c0c2926a35df Irccdctl: cleanup main.cpp
David Demelier <markand@malikania.fr>
parents: 657
diff changeset
291 // {{{ on_message
c0c2926a35df Irccdctl: cleanup main.cpp
David Demelier <markand@malikania.fr>
parents: 657
diff changeset
292
c0c2926a35df Irccdctl: cleanup main.cpp
David Demelier <markand@malikania.fr>
parents: 657
diff changeset
293 /*
c0c2926a35df Irccdctl: cleanup main.cpp
David Demelier <markand@malikania.fr>
parents: 657
diff changeset
294 * onMessage server origin channel message
c0c2926a35df Irccdctl: cleanup main.cpp
David Demelier <markand@malikania.fr>
parents: 657
diff changeset
295 */
c0c2926a35df Irccdctl: cleanup main.cpp
David Demelier <markand@malikania.fr>
parents: 657
diff changeset
296 void on_message(const std::string& data)
c0c2926a35df Irccdctl: cleanup main.cpp
David Demelier <markand@malikania.fr>
parents: 657
diff changeset
297 {
809
8460b4a34191 misc: reorganize namespaces, closes #952 @4h
David Demelier <markand@malikania.fr>
parents: 797
diff changeset
298 const auto args = split(data, " ", 4);
689
c0c2926a35df Irccdctl: cleanup main.cpp
David Demelier <markand@malikania.fr>
parents: 657
diff changeset
299
773
8c44bbcbbab9 Misc: style, cleanup and update
David Demelier <markand@malikania.fr>
parents: 761
diff changeset
300 plugin->handle_message(*daemon, {
8c44bbcbbab9 Misc: style, cleanup and update
David Demelier <markand@malikania.fr>
parents: 761
diff changeset
301 get_server(get_arg(args, 0)),
8c44bbcbbab9 Misc: style, cleanup and update
David Demelier <markand@malikania.fr>
parents: 761
diff changeset
302 get_arg(args, 1),
8c44bbcbbab9 Misc: style, cleanup and update
David Demelier <markand@malikania.fr>
parents: 761
diff changeset
303 get_arg(args, 2),
8c44bbcbbab9 Misc: style, cleanup and update
David Demelier <markand@malikania.fr>
parents: 761
diff changeset
304 get_arg(args, 3)
8c44bbcbbab9 Misc: style, cleanup and update
David Demelier <markand@malikania.fr>
parents: 761
diff changeset
305 });
689
c0c2926a35df Irccdctl: cleanup main.cpp
David Demelier <markand@malikania.fr>
parents: 657
diff changeset
306 }
c0c2926a35df Irccdctl: cleanup main.cpp
David Demelier <markand@malikania.fr>
parents: 657
diff changeset
307
c0c2926a35df Irccdctl: cleanup main.cpp
David Demelier <markand@malikania.fr>
parents: 657
diff changeset
308 // }}}
c0c2926a35df Irccdctl: cleanup main.cpp
David Demelier <markand@malikania.fr>
parents: 657
diff changeset
309
c0c2926a35df Irccdctl: cleanup main.cpp
David Demelier <markand@malikania.fr>
parents: 657
diff changeset
310 // {{{ on_mode
c0c2926a35df Irccdctl: cleanup main.cpp
David Demelier <markand@malikania.fr>
parents: 657
diff changeset
311
c0c2926a35df Irccdctl: cleanup main.cpp
David Demelier <markand@malikania.fr>
parents: 657
diff changeset
312 /*
c0c2926a35df Irccdctl: cleanup main.cpp
David Demelier <markand@malikania.fr>
parents: 657
diff changeset
313 * onMode server origin channel mode limit user mask
c0c2926a35df Irccdctl: cleanup main.cpp
David Demelier <markand@malikania.fr>
parents: 657
diff changeset
314 */
c0c2926a35df Irccdctl: cleanup main.cpp
David Demelier <markand@malikania.fr>
parents: 657
diff changeset
315 void on_mode(const std::string& data)
c0c2926a35df Irccdctl: cleanup main.cpp
David Demelier <markand@malikania.fr>
parents: 657
diff changeset
316 {
809
8460b4a34191 misc: reorganize namespaces, closes #952 @4h
David Demelier <markand@malikania.fr>
parents: 797
diff changeset
317 const auto args = split(data, " ", 7);
689
c0c2926a35df Irccdctl: cleanup main.cpp
David Demelier <markand@malikania.fr>
parents: 657
diff changeset
318
773
8c44bbcbbab9 Misc: style, cleanup and update
David Demelier <markand@malikania.fr>
parents: 761
diff changeset
319 plugin->handle_mode(*daemon, {
8c44bbcbbab9 Misc: style, cleanup and update
David Demelier <markand@malikania.fr>
parents: 761
diff changeset
320 get_server(get_arg(args, 0)),
8c44bbcbbab9 Misc: style, cleanup and update
David Demelier <markand@malikania.fr>
parents: 761
diff changeset
321 get_arg(args, 1),
8c44bbcbbab9 Misc: style, cleanup and update
David Demelier <markand@malikania.fr>
parents: 761
diff changeset
322 get_arg(args, 2),
8c44bbcbbab9 Misc: style, cleanup and update
David Demelier <markand@malikania.fr>
parents: 761
diff changeset
323 get_arg(args, 3),
8c44bbcbbab9 Misc: style, cleanup and update
David Demelier <markand@malikania.fr>
parents: 761
diff changeset
324 get_arg(args, 4),
8c44bbcbbab9 Misc: style, cleanup and update
David Demelier <markand@malikania.fr>
parents: 761
diff changeset
325 get_arg(args, 5),
8c44bbcbbab9 Misc: style, cleanup and update
David Demelier <markand@malikania.fr>
parents: 761
diff changeset
326 get_arg(args, 6),
8c44bbcbbab9 Misc: style, cleanup and update
David Demelier <markand@malikania.fr>
parents: 761
diff changeset
327 });
689
c0c2926a35df Irccdctl: cleanup main.cpp
David Demelier <markand@malikania.fr>
parents: 657
diff changeset
328 }
c0c2926a35df Irccdctl: cleanup main.cpp
David Demelier <markand@malikania.fr>
parents: 657
diff changeset
329
c0c2926a35df Irccdctl: cleanup main.cpp
David Demelier <markand@malikania.fr>
parents: 657
diff changeset
330 // }}}
c0c2926a35df Irccdctl: cleanup main.cpp
David Demelier <markand@malikania.fr>
parents: 657
diff changeset
331
c0c2926a35df Irccdctl: cleanup main.cpp
David Demelier <markand@malikania.fr>
parents: 657
diff changeset
332 // {{{ on_names
c0c2926a35df Irccdctl: cleanup main.cpp
David Demelier <markand@malikania.fr>
parents: 657
diff changeset
333
c0c2926a35df Irccdctl: cleanup main.cpp
David Demelier <markand@malikania.fr>
parents: 657
diff changeset
334 /*
c0c2926a35df Irccdctl: cleanup main.cpp
David Demelier <markand@malikania.fr>
parents: 657
diff changeset
335 * onNames server channel nick1 nick2 nickN
c0c2926a35df Irccdctl: cleanup main.cpp
David Demelier <markand@malikania.fr>
parents: 657
diff changeset
336 */
c0c2926a35df Irccdctl: cleanup main.cpp
David Demelier <markand@malikania.fr>
parents: 657
diff changeset
337 void on_names(const std::string& data)
c0c2926a35df Irccdctl: cleanup main.cpp
David Demelier <markand@malikania.fr>
parents: 657
diff changeset
338 {
809
8460b4a34191 misc: reorganize namespaces, closes #952 @4h
David Demelier <markand@malikania.fr>
parents: 797
diff changeset
339 const auto args = split(data, " ");
689
c0c2926a35df Irccdctl: cleanup main.cpp
David Demelier <markand@malikania.fr>
parents: 657
diff changeset
340
773
8c44bbcbbab9 Misc: style, cleanup and update
David Demelier <markand@malikania.fr>
parents: 761
diff changeset
341 names_event ev;
689
c0c2926a35df Irccdctl: cleanup main.cpp
David Demelier <markand@malikania.fr>
parents: 657
diff changeset
342
773
8c44bbcbbab9 Misc: style, cleanup and update
David Demelier <markand@malikania.fr>
parents: 761
diff changeset
343 ev.server = get_server(get_arg(args, 0));
8c44bbcbbab9 Misc: style, cleanup and update
David Demelier <markand@malikania.fr>
parents: 761
diff changeset
344 ev.channel = get_arg(args, 1);
689
c0c2926a35df Irccdctl: cleanup main.cpp
David Demelier <markand@malikania.fr>
parents: 657
diff changeset
345
773
8c44bbcbbab9 Misc: style, cleanup and update
David Demelier <markand@malikania.fr>
parents: 761
diff changeset
346 if (args.size() >= 3U)
8c44bbcbbab9 Misc: style, cleanup and update
David Demelier <markand@malikania.fr>
parents: 761
diff changeset
347 ev.names.insert(ev.names.begin(), args.begin() + 2, args.end());
689
c0c2926a35df Irccdctl: cleanup main.cpp
David Demelier <markand@malikania.fr>
parents: 657
diff changeset
348
773
8c44bbcbbab9 Misc: style, cleanup and update
David Demelier <markand@malikania.fr>
parents: 761
diff changeset
349 plugin->handle_names(*daemon, ev);
689
c0c2926a35df Irccdctl: cleanup main.cpp
David Demelier <markand@malikania.fr>
parents: 657
diff changeset
350 }
c0c2926a35df Irccdctl: cleanup main.cpp
David Demelier <markand@malikania.fr>
parents: 657
diff changeset
351
c0c2926a35df Irccdctl: cleanup main.cpp
David Demelier <markand@malikania.fr>
parents: 657
diff changeset
352 // }}}
c0c2926a35df Irccdctl: cleanup main.cpp
David Demelier <markand@malikania.fr>
parents: 657
diff changeset
353
c0c2926a35df Irccdctl: cleanup main.cpp
David Demelier <markand@malikania.fr>
parents: 657
diff changeset
354 // {{{ on_nick
c0c2926a35df Irccdctl: cleanup main.cpp
David Demelier <markand@malikania.fr>
parents: 657
diff changeset
355
c0c2926a35df Irccdctl: cleanup main.cpp
David Demelier <markand@malikania.fr>
parents: 657
diff changeset
356 /*
c0c2926a35df Irccdctl: cleanup main.cpp
David Demelier <markand@malikania.fr>
parents: 657
diff changeset
357 * onNick server origin nickname
c0c2926a35df Irccdctl: cleanup main.cpp
David Demelier <markand@malikania.fr>
parents: 657
diff changeset
358 */
c0c2926a35df Irccdctl: cleanup main.cpp
David Demelier <markand@malikania.fr>
parents: 657
diff changeset
359 void on_nick(const std::string& data)
c0c2926a35df Irccdctl: cleanup main.cpp
David Demelier <markand@malikania.fr>
parents: 657
diff changeset
360 {
809
8460b4a34191 misc: reorganize namespaces, closes #952 @4h
David Demelier <markand@malikania.fr>
parents: 797
diff changeset
361 const auto args = split(data, " ");
689
c0c2926a35df Irccdctl: cleanup main.cpp
David Demelier <markand@malikania.fr>
parents: 657
diff changeset
362
773
8c44bbcbbab9 Misc: style, cleanup and update
David Demelier <markand@malikania.fr>
parents: 761
diff changeset
363 plugin->handle_nick(*daemon, {
8c44bbcbbab9 Misc: style, cleanup and update
David Demelier <markand@malikania.fr>
parents: 761
diff changeset
364 get_server(get_arg(args, 0)),
8c44bbcbbab9 Misc: style, cleanup and update
David Demelier <markand@malikania.fr>
parents: 761
diff changeset
365 get_arg(args, 1),
8c44bbcbbab9 Misc: style, cleanup and update
David Demelier <markand@malikania.fr>
parents: 761
diff changeset
366 get_arg(args, 2)
8c44bbcbbab9 Misc: style, cleanup and update
David Demelier <markand@malikania.fr>
parents: 761
diff changeset
367 });
689
c0c2926a35df Irccdctl: cleanup main.cpp
David Demelier <markand@malikania.fr>
parents: 657
diff changeset
368 }
c0c2926a35df Irccdctl: cleanup main.cpp
David Demelier <markand@malikania.fr>
parents: 657
diff changeset
369
c0c2926a35df Irccdctl: cleanup main.cpp
David Demelier <markand@malikania.fr>
parents: 657
diff changeset
370 // }}}
c0c2926a35df Irccdctl: cleanup main.cpp
David Demelier <markand@malikania.fr>
parents: 657
diff changeset
371
c0c2926a35df Irccdctl: cleanup main.cpp
David Demelier <markand@malikania.fr>
parents: 657
diff changeset
372 // {{{ on_notice
c0c2926a35df Irccdctl: cleanup main.cpp
David Demelier <markand@malikania.fr>
parents: 657
diff changeset
373
c0c2926a35df Irccdctl: cleanup main.cpp
David Demelier <markand@malikania.fr>
parents: 657
diff changeset
374 /*
c0c2926a35df Irccdctl: cleanup main.cpp
David Demelier <markand@malikania.fr>
parents: 657
diff changeset
375 * onNotice server origin channel nickname
c0c2926a35df Irccdctl: cleanup main.cpp
David Demelier <markand@malikania.fr>
parents: 657
diff changeset
376 */
c0c2926a35df Irccdctl: cleanup main.cpp
David Demelier <markand@malikania.fr>
parents: 657
diff changeset
377 void on_notice(const std::string& data)
c0c2926a35df Irccdctl: cleanup main.cpp
David Demelier <markand@malikania.fr>
parents: 657
diff changeset
378 {
809
8460b4a34191 misc: reorganize namespaces, closes #952 @4h
David Demelier <markand@malikania.fr>
parents: 797
diff changeset
379 const auto args = split(data, " ", 4);
689
c0c2926a35df Irccdctl: cleanup main.cpp
David Demelier <markand@malikania.fr>
parents: 657
diff changeset
380
773
8c44bbcbbab9 Misc: style, cleanup and update
David Demelier <markand@malikania.fr>
parents: 761
diff changeset
381 plugin->handle_notice(*daemon, {
8c44bbcbbab9 Misc: style, cleanup and update
David Demelier <markand@malikania.fr>
parents: 761
diff changeset
382 get_server(get_arg(args, 0)),
8c44bbcbbab9 Misc: style, cleanup and update
David Demelier <markand@malikania.fr>
parents: 761
diff changeset
383 get_arg(args, 1),
8c44bbcbbab9 Misc: style, cleanup and update
David Demelier <markand@malikania.fr>
parents: 761
diff changeset
384 get_arg(args, 2),
8c44bbcbbab9 Misc: style, cleanup and update
David Demelier <markand@malikania.fr>
parents: 761
diff changeset
385 get_arg(args, 3)
8c44bbcbbab9 Misc: style, cleanup and update
David Demelier <markand@malikania.fr>
parents: 761
diff changeset
386 });
689
c0c2926a35df Irccdctl: cleanup main.cpp
David Demelier <markand@malikania.fr>
parents: 657
diff changeset
387 }
c0c2926a35df Irccdctl: cleanup main.cpp
David Demelier <markand@malikania.fr>
parents: 657
diff changeset
388
c0c2926a35df Irccdctl: cleanup main.cpp
David Demelier <markand@malikania.fr>
parents: 657
diff changeset
389 // }}}
c0c2926a35df Irccdctl: cleanup main.cpp
David Demelier <markand@malikania.fr>
parents: 657
diff changeset
390
c0c2926a35df Irccdctl: cleanup main.cpp
David Demelier <markand@malikania.fr>
parents: 657
diff changeset
391 // {{{ on_part
c0c2926a35df Irccdctl: cleanup main.cpp
David Demelier <markand@malikania.fr>
parents: 657
diff changeset
392
c0c2926a35df Irccdctl: cleanup main.cpp
David Demelier <markand@malikania.fr>
parents: 657
diff changeset
393 /*
c0c2926a35df Irccdctl: cleanup main.cpp
David Demelier <markand@malikania.fr>
parents: 657
diff changeset
394 * onPart server origin channel reason
c0c2926a35df Irccdctl: cleanup main.cpp
David Demelier <markand@malikania.fr>
parents: 657
diff changeset
395 */
c0c2926a35df Irccdctl: cleanup main.cpp
David Demelier <markand@malikania.fr>
parents: 657
diff changeset
396 void on_part(const std::string& data)
c0c2926a35df Irccdctl: cleanup main.cpp
David Demelier <markand@malikania.fr>
parents: 657
diff changeset
397 {
809
8460b4a34191 misc: reorganize namespaces, closes #952 @4h
David Demelier <markand@malikania.fr>
parents: 797
diff changeset
398 const auto args = split(data, " ", 4);
689
c0c2926a35df Irccdctl: cleanup main.cpp
David Demelier <markand@malikania.fr>
parents: 657
diff changeset
399
773
8c44bbcbbab9 Misc: style, cleanup and update
David Demelier <markand@malikania.fr>
parents: 761
diff changeset
400 plugin->handle_part(*daemon, {
8c44bbcbbab9 Misc: style, cleanup and update
David Demelier <markand@malikania.fr>
parents: 761
diff changeset
401 get_server(get_arg(args, 0)),
8c44bbcbbab9 Misc: style, cleanup and update
David Demelier <markand@malikania.fr>
parents: 761
diff changeset
402 get_arg(args, 1),
8c44bbcbbab9 Misc: style, cleanup and update
David Demelier <markand@malikania.fr>
parents: 761
diff changeset
403 get_arg(args, 2),
8c44bbcbbab9 Misc: style, cleanup and update
David Demelier <markand@malikania.fr>
parents: 761
diff changeset
404 get_arg(args, 3),
8c44bbcbbab9 Misc: style, cleanup and update
David Demelier <markand@malikania.fr>
parents: 761
diff changeset
405 });
689
c0c2926a35df Irccdctl: cleanup main.cpp
David Demelier <markand@malikania.fr>
parents: 657
diff changeset
406 }
c0c2926a35df Irccdctl: cleanup main.cpp
David Demelier <markand@malikania.fr>
parents: 657
diff changeset
407
c0c2926a35df Irccdctl: cleanup main.cpp
David Demelier <markand@malikania.fr>
parents: 657
diff changeset
408 // }}}
c0c2926a35df Irccdctl: cleanup main.cpp
David Demelier <markand@malikania.fr>
parents: 657
diff changeset
409
c0c2926a35df Irccdctl: cleanup main.cpp
David Demelier <markand@malikania.fr>
parents: 657
diff changeset
410 // {{{ on_reload
c0c2926a35df Irccdctl: cleanup main.cpp
David Demelier <markand@malikania.fr>
parents: 657
diff changeset
411
c0c2926a35df Irccdctl: cleanup main.cpp
David Demelier <markand@malikania.fr>
parents: 657
diff changeset
412 /*
c0c2926a35df Irccdctl: cleanup main.cpp
David Demelier <markand@malikania.fr>
parents: 657
diff changeset
413 * onReload
c0c2926a35df Irccdctl: cleanup main.cpp
David Demelier <markand@malikania.fr>
parents: 657
diff changeset
414 */
c0c2926a35df Irccdctl: cleanup main.cpp
David Demelier <markand@malikania.fr>
parents: 657
diff changeset
415 void on_reload(const std::string&)
c0c2926a35df Irccdctl: cleanup main.cpp
David Demelier <markand@malikania.fr>
parents: 657
diff changeset
416 {
773
8c44bbcbbab9 Misc: style, cleanup and update
David Demelier <markand@malikania.fr>
parents: 761
diff changeset
417 plugin->handle_reload(*daemon);
689
c0c2926a35df Irccdctl: cleanup main.cpp
David Demelier <markand@malikania.fr>
parents: 657
diff changeset
418 }
c0c2926a35df Irccdctl: cleanup main.cpp
David Demelier <markand@malikania.fr>
parents: 657
diff changeset
419
c0c2926a35df Irccdctl: cleanup main.cpp
David Demelier <markand@malikania.fr>
parents: 657
diff changeset
420 // }}}
c0c2926a35df Irccdctl: cleanup main.cpp
David Demelier <markand@malikania.fr>
parents: 657
diff changeset
421
c0c2926a35df Irccdctl: cleanup main.cpp
David Demelier <markand@malikania.fr>
parents: 657
diff changeset
422 // {{{ on_topic
c0c2926a35df Irccdctl: cleanup main.cpp
David Demelier <markand@malikania.fr>
parents: 657
diff changeset
423
c0c2926a35df Irccdctl: cleanup main.cpp
David Demelier <markand@malikania.fr>
parents: 657
diff changeset
424 /*
c0c2926a35df Irccdctl: cleanup main.cpp
David Demelier <markand@malikania.fr>
parents: 657
diff changeset
425 * onTopic server origin channel topic
c0c2926a35df Irccdctl: cleanup main.cpp
David Demelier <markand@malikania.fr>
parents: 657
diff changeset
426 */
c0c2926a35df Irccdctl: cleanup main.cpp
David Demelier <markand@malikania.fr>
parents: 657
diff changeset
427 void on_topic(const std::string& data)
c0c2926a35df Irccdctl: cleanup main.cpp
David Demelier <markand@malikania.fr>
parents: 657
diff changeset
428 {
809
8460b4a34191 misc: reorganize namespaces, closes #952 @4h
David Demelier <markand@malikania.fr>
parents: 797
diff changeset
429 const auto args = split(data, " ", 4);
689
c0c2926a35df Irccdctl: cleanup main.cpp
David Demelier <markand@malikania.fr>
parents: 657
diff changeset
430
773
8c44bbcbbab9 Misc: style, cleanup and update
David Demelier <markand@malikania.fr>
parents: 761
diff changeset
431 plugin->handle_topic(*daemon, {
8c44bbcbbab9 Misc: style, cleanup and update
David Demelier <markand@malikania.fr>
parents: 761
diff changeset
432 get_server(get_arg(args, 0)),
8c44bbcbbab9 Misc: style, cleanup and update
David Demelier <markand@malikania.fr>
parents: 761
diff changeset
433 get_arg(args, 1),
8c44bbcbbab9 Misc: style, cleanup and update
David Demelier <markand@malikania.fr>
parents: 761
diff changeset
434 get_arg(args, 2),
8c44bbcbbab9 Misc: style, cleanup and update
David Demelier <markand@malikania.fr>
parents: 761
diff changeset
435 get_arg(args, 3)
8c44bbcbbab9 Misc: style, cleanup and update
David Demelier <markand@malikania.fr>
parents: 761
diff changeset
436 });
689
c0c2926a35df Irccdctl: cleanup main.cpp
David Demelier <markand@malikania.fr>
parents: 657
diff changeset
437 }
c0c2926a35df Irccdctl: cleanup main.cpp
David Demelier <markand@malikania.fr>
parents: 657
diff changeset
438
c0c2926a35df Irccdctl: cleanup main.cpp
David Demelier <markand@malikania.fr>
parents: 657
diff changeset
439 // }}}
c0c2926a35df Irccdctl: cleanup main.cpp
David Demelier <markand@malikania.fr>
parents: 657
diff changeset
440
c0c2926a35df Irccdctl: cleanup main.cpp
David Demelier <markand@malikania.fr>
parents: 657
diff changeset
441 // {{{ on_unload
c0c2926a35df Irccdctl: cleanup main.cpp
David Demelier <markand@malikania.fr>
parents: 657
diff changeset
442
c0c2926a35df Irccdctl: cleanup main.cpp
David Demelier <markand@malikania.fr>
parents: 657
diff changeset
443 /*
c0c2926a35df Irccdctl: cleanup main.cpp
David Demelier <markand@malikania.fr>
parents: 657
diff changeset
444 * onUnload
c0c2926a35df Irccdctl: cleanup main.cpp
David Demelier <markand@malikania.fr>
parents: 657
diff changeset
445 */
c0c2926a35df Irccdctl: cleanup main.cpp
David Demelier <markand@malikania.fr>
parents: 657
diff changeset
446 void on_unload(const std::string&)
c0c2926a35df Irccdctl: cleanup main.cpp
David Demelier <markand@malikania.fr>
parents: 657
diff changeset
447 {
773
8c44bbcbbab9 Misc: style, cleanup and update
David Demelier <markand@malikania.fr>
parents: 761
diff changeset
448 plugin->handle_unload(*daemon);
689
c0c2926a35df Irccdctl: cleanup main.cpp
David Demelier <markand@malikania.fr>
parents: 657
diff changeset
449 }
c0c2926a35df Irccdctl: cleanup main.cpp
David Demelier <markand@malikania.fr>
parents: 657
diff changeset
450
c0c2926a35df Irccdctl: cleanup main.cpp
David Demelier <markand@malikania.fr>
parents: 657
diff changeset
451 // }}}
c0c2926a35df Irccdctl: cleanup main.cpp
David Demelier <markand@malikania.fr>
parents: 657
diff changeset
452
c0c2926a35df Irccdctl: cleanup main.cpp
David Demelier <markand@malikania.fr>
parents: 657
diff changeset
453 // {{{ on_whois
c0c2926a35df Irccdctl: cleanup main.cpp
David Demelier <markand@malikania.fr>
parents: 657
diff changeset
454
c0c2926a35df Irccdctl: cleanup main.cpp
David Demelier <markand@malikania.fr>
parents: 657
diff changeset
455 /*
c0c2926a35df Irccdctl: cleanup main.cpp
David Demelier <markand@malikania.fr>
parents: 657
diff changeset
456 * onWhois server nick user host realname chan1 chan2 chanN
c0c2926a35df Irccdctl: cleanup main.cpp
David Demelier <markand@malikania.fr>
parents: 657
diff changeset
457 */
c0c2926a35df Irccdctl: cleanup main.cpp
David Demelier <markand@malikania.fr>
parents: 657
diff changeset
458 void on_whois(const std::string& data)
c0c2926a35df Irccdctl: cleanup main.cpp
David Demelier <markand@malikania.fr>
parents: 657
diff changeset
459 {
809
8460b4a34191 misc: reorganize namespaces, closes #952 @4h
David Demelier <markand@malikania.fr>
parents: 797
diff changeset
460 const auto args = split(data, " ");
689
c0c2926a35df Irccdctl: cleanup main.cpp
David Demelier <markand@malikania.fr>
parents: 657
diff changeset
461
773
8c44bbcbbab9 Misc: style, cleanup and update
David Demelier <markand@malikania.fr>
parents: 761
diff changeset
462 whois_event ev;
689
c0c2926a35df Irccdctl: cleanup main.cpp
David Demelier <markand@malikania.fr>
parents: 657
diff changeset
463
773
8c44bbcbbab9 Misc: style, cleanup and update
David Demelier <markand@malikania.fr>
parents: 761
diff changeset
464 ev.server = get_server(get_arg(args, 0));
8c44bbcbbab9 Misc: style, cleanup and update
David Demelier <markand@malikania.fr>
parents: 761
diff changeset
465 ev.whois.nick = get_arg(args, 1);
8c44bbcbbab9 Misc: style, cleanup and update
David Demelier <markand@malikania.fr>
parents: 761
diff changeset
466 ev.whois.user = get_arg(args, 2);
785
7145a3df4cb7 misc: rename host to hostname, closes #941 @2h
David Demelier <markand@malikania.fr>
parents: 773
diff changeset
467 ev.whois.hostname = get_arg(args, 3);
773
8c44bbcbbab9 Misc: style, cleanup and update
David Demelier <markand@malikania.fr>
parents: 761
diff changeset
468 ev.whois.realname = get_arg(args, 4);
689
c0c2926a35df Irccdctl: cleanup main.cpp
David Demelier <markand@malikania.fr>
parents: 657
diff changeset
469
773
8c44bbcbbab9 Misc: style, cleanup and update
David Demelier <markand@malikania.fr>
parents: 761
diff changeset
470 if (args.size() >= 5)
8c44bbcbbab9 Misc: style, cleanup and update
David Demelier <markand@malikania.fr>
parents: 761
diff changeset
471 ev.whois.channels.insert(ev.whois.channels.begin(), args.begin() + 5, args.end());
689
c0c2926a35df Irccdctl: cleanup main.cpp
David Demelier <markand@malikania.fr>
parents: 657
diff changeset
472
773
8c44bbcbbab9 Misc: style, cleanup and update
David Demelier <markand@malikania.fr>
parents: 761
diff changeset
473 plugin->handle_whois(*daemon, ev);
689
c0c2926a35df Irccdctl: cleanup main.cpp
David Demelier <markand@malikania.fr>
parents: 657
diff changeset
474 }
c0c2926a35df Irccdctl: cleanup main.cpp
David Demelier <markand@malikania.fr>
parents: 657
diff changeset
475
c0c2926a35df Irccdctl: cleanup main.cpp
David Demelier <markand@malikania.fr>
parents: 657
diff changeset
476 // }}}
c0c2926a35df Irccdctl: cleanup main.cpp
David Demelier <markand@malikania.fr>
parents: 657
diff changeset
477
c0c2926a35df Irccdctl: cleanup main.cpp
David Demelier <markand@malikania.fr>
parents: 657
diff changeset
478 // {{{ exec
c0c2926a35df Irccdctl: cleanup main.cpp
David Demelier <markand@malikania.fr>
parents: 657
diff changeset
479
620
c79ae2987955 Irccd: create a brand new irccd-test executable, closes #569 @3h
David Demelier <markand@malikania.fr>
parents:
diff changeset
480 void exec(const std::string& line)
c79ae2987955 Irccd: create a brand new irccd-test executable, closes #569 @3h
David Demelier <markand@malikania.fr>
parents:
diff changeset
481 {
773
8c44bbcbbab9 Misc: style, cleanup and update
David Demelier <markand@malikania.fr>
parents: 761
diff changeset
482 const auto pos = line.find(' ');
8c44bbcbbab9 Misc: style, cleanup and update
David Demelier <markand@malikania.fr>
parents: 761
diff changeset
483 const auto it = list.find(line.substr(0, pos));
620
c79ae2987955 Irccd: create a brand new irccd-test executable, closes #569 @3h
David Demelier <markand@malikania.fr>
parents:
diff changeset
484
773
8c44bbcbbab9 Misc: style, cleanup and update
David Demelier <markand@malikania.fr>
parents: 761
diff changeset
485 if (it != list.end())
8c44bbcbbab9 Misc: style, cleanup and update
David Demelier <markand@malikania.fr>
parents: 761
diff changeset
486 it->second(pos == std::string::npos ? "" : line.substr(pos + 1));
620
c79ae2987955 Irccd: create a brand new irccd-test executable, closes #569 @3h
David Demelier <markand@malikania.fr>
parents:
diff changeset
487 }
c79ae2987955 Irccd: create a brand new irccd-test executable, closes #569 @3h
David Demelier <markand@malikania.fr>
parents:
diff changeset
488
689
c0c2926a35df Irccdctl: cleanup main.cpp
David Demelier <markand@malikania.fr>
parents: 657
diff changeset
489 // }}}
c0c2926a35df Irccdctl: cleanup main.cpp
David Demelier <markand@malikania.fr>
parents: 657
diff changeset
490
701
2007a37d7e1a CMake: prefix options with IRCCD_, #closes 800 @2h
David Demelier <markand@malikania.fr>
parents: 689
diff changeset
491 #if defined(IRCCD_HAVE_LIBEDIT)
620
c79ae2987955 Irccd: create a brand new irccd-test executable, closes #569 @3h
David Demelier <markand@malikania.fr>
parents:
diff changeset
492
689
c0c2926a35df Irccdctl: cleanup main.cpp
David Demelier <markand@malikania.fr>
parents: 657
diff changeset
493 // {{{ prompt (libedit version)
c0c2926a35df Irccdctl: cleanup main.cpp
David Demelier <markand@malikania.fr>
parents: 657
diff changeset
494
773
8c44bbcbbab9 Misc: style, cleanup and update
David Demelier <markand@malikania.fr>
parents: 761
diff changeset
495 auto prompt(EditLine*) -> const char*
620
c79ae2987955 Irccd: create a brand new irccd-test executable, closes #569 @3h
David Demelier <markand@malikania.fr>
parents:
diff changeset
496 {
773
8c44bbcbbab9 Misc: style, cleanup and update
David Demelier <markand@malikania.fr>
parents: 761
diff changeset
497 static const char* text = "> ";
620
c79ae2987955 Irccd: create a brand new irccd-test executable, closes #569 @3h
David Demelier <markand@malikania.fr>
parents:
diff changeset
498
773
8c44bbcbbab9 Misc: style, cleanup and update
David Demelier <markand@malikania.fr>
parents: 761
diff changeset
499 return text;
620
c79ae2987955 Irccd: create a brand new irccd-test executable, closes #569 @3h
David Demelier <markand@malikania.fr>
parents:
diff changeset
500 }
c79ae2987955 Irccd: create a brand new irccd-test executable, closes #569 @3h
David Demelier <markand@malikania.fr>
parents:
diff changeset
501
773
8c44bbcbbab9 Misc: style, cleanup and update
David Demelier <markand@malikania.fr>
parents: 761
diff changeset
502 auto clean(std::string input) -> std::string
620
c79ae2987955 Irccd: create a brand new irccd-test executable, closes #569 @3h
David Demelier <markand@malikania.fr>
parents:
diff changeset
503 {
773
8c44bbcbbab9 Misc: style, cleanup and update
David Demelier <markand@malikania.fr>
parents: 761
diff changeset
504 while (!input.empty() && (input.back() == '\n' || input.back() == '\r'))
8c44bbcbbab9 Misc: style, cleanup and update
David Demelier <markand@malikania.fr>
parents: 761
diff changeset
505 input.pop_back();
620
c79ae2987955 Irccd: create a brand new irccd-test executable, closes #569 @3h
David Demelier <markand@malikania.fr>
parents:
diff changeset
506
773
8c44bbcbbab9 Misc: style, cleanup and update
David Demelier <markand@malikania.fr>
parents: 761
diff changeset
507 return input;
620
c79ae2987955 Irccd: create a brand new irccd-test executable, closes #569 @3h
David Demelier <markand@malikania.fr>
parents:
diff changeset
508 }
c79ae2987955 Irccd: create a brand new irccd-test executable, closes #569 @3h
David Demelier <markand@malikania.fr>
parents:
diff changeset
509
773
8c44bbcbbab9 Misc: style, cleanup and update
David Demelier <markand@malikania.fr>
parents: 761
diff changeset
510 auto matches(const std::string& name) -> std::vector<std::string>
620
c79ae2987955 Irccd: create a brand new irccd-test executable, closes #569 @3h
David Demelier <markand@malikania.fr>
parents:
diff changeset
511 {
773
8c44bbcbbab9 Misc: style, cleanup and update
David Demelier <markand@malikania.fr>
parents: 761
diff changeset
512 std::vector<std::string> result;
620
c79ae2987955 Irccd: create a brand new irccd-test executable, closes #569 @3h
David Demelier <markand@malikania.fr>
parents:
diff changeset
513
773
8c44bbcbbab9 Misc: style, cleanup and update
David Demelier <markand@malikania.fr>
parents: 761
diff changeset
514 for (const auto& pair : list)
8c44bbcbbab9 Misc: style, cleanup and update
David Demelier <markand@malikania.fr>
parents: 761
diff changeset
515 if (pair.first.compare(0U, name.size(), name) == 0U)
8c44bbcbbab9 Misc: style, cleanup and update
David Demelier <markand@malikania.fr>
parents: 761
diff changeset
516 result.push_back(pair.first);
620
c79ae2987955 Irccd: create a brand new irccd-test executable, closes #569 @3h
David Demelier <markand@malikania.fr>
parents:
diff changeset
517
773
8c44bbcbbab9 Misc: style, cleanup and update
David Demelier <markand@malikania.fr>
parents: 761
diff changeset
518 return result;
620
c79ae2987955 Irccd: create a brand new irccd-test executable, closes #569 @3h
David Demelier <markand@malikania.fr>
parents:
diff changeset
519 }
c79ae2987955 Irccd: create a brand new irccd-test executable, closes #569 @3h
David Demelier <markand@malikania.fr>
parents:
diff changeset
520
773
8c44bbcbbab9 Misc: style, cleanup and update
David Demelier <markand@malikania.fr>
parents: 761
diff changeset
521 auto complete(EditLine* el, int) -> unsigned char
620
c79ae2987955 Irccd: create a brand new irccd-test executable, closes #569 @3h
David Demelier <markand@malikania.fr>
parents:
diff changeset
522 {
773
8c44bbcbbab9 Misc: style, cleanup and update
David Demelier <markand@malikania.fr>
parents: 761
diff changeset
523 const auto* lf = el_line(el);
809
8460b4a34191 misc: reorganize namespaces, closes #952 @4h
David Demelier <markand@malikania.fr>
parents: 797
diff changeset
524 const auto args = split(std::string(lf->buffer, lf->cursor), " ");
620
c79ae2987955 Irccd: create a brand new irccd-test executable, closes #569 @3h
David Demelier <markand@malikania.fr>
parents:
diff changeset
525
773
8c44bbcbbab9 Misc: style, cleanup and update
David Demelier <markand@malikania.fr>
parents: 761
diff changeset
526 if (args.size() == 0U)
8c44bbcbbab9 Misc: style, cleanup and update
David Demelier <markand@malikania.fr>
parents: 761
diff changeset
527 return CC_REFRESH;
620
c79ae2987955 Irccd: create a brand new irccd-test executable, closes #569 @3h
David Demelier <markand@malikania.fr>
parents:
diff changeset
528
773
8c44bbcbbab9 Misc: style, cleanup and update
David Demelier <markand@malikania.fr>
parents: 761
diff changeset
529 const auto found = matches(args[0]);
620
c79ae2987955 Irccd: create a brand new irccd-test executable, closes #569 @3h
David Demelier <markand@malikania.fr>
parents:
diff changeset
530
773
8c44bbcbbab9 Misc: style, cleanup and update
David Demelier <markand@malikania.fr>
parents: 761
diff changeset
531 if (found.size() != 1U)
8c44bbcbbab9 Misc: style, cleanup and update
David Demelier <markand@malikania.fr>
parents: 761
diff changeset
532 return CC_REFRESH;
620
c79ae2987955 Irccd: create a brand new irccd-test executable, closes #569 @3h
David Demelier <markand@malikania.fr>
parents:
diff changeset
533
773
8c44bbcbbab9 Misc: style, cleanup and update
David Demelier <markand@malikania.fr>
parents: 761
diff changeset
534 // Insert the missing text, e.g. onCom -> onCommand.
8c44bbcbbab9 Misc: style, cleanup and update
David Demelier <markand@malikania.fr>
parents: 761
diff changeset
535 if (el_insertstr(el, &found[0].c_str()[args[0].size()]) < 0)
8c44bbcbbab9 Misc: style, cleanup and update
David Demelier <markand@malikania.fr>
parents: 761
diff changeset
536 return CC_ERROR;
620
c79ae2987955 Irccd: create a brand new irccd-test executable, closes #569 @3h
David Demelier <markand@malikania.fr>
parents:
diff changeset
537
773
8c44bbcbbab9 Misc: style, cleanup and update
David Demelier <markand@malikania.fr>
parents: 761
diff changeset
538 return CC_REFRESH;
620
c79ae2987955 Irccd: create a brand new irccd-test executable, closes #569 @3h
David Demelier <markand@malikania.fr>
parents:
diff changeset
539 }
c79ae2987955 Irccd: create a brand new irccd-test executable, closes #569 @3h
David Demelier <markand@malikania.fr>
parents:
diff changeset
540
c79ae2987955 Irccd: create a brand new irccd-test executable, closes #569 @3h
David Demelier <markand@malikania.fr>
parents:
diff changeset
541 void run()
c79ae2987955 Irccd: create a brand new irccd-test executable, closes #569 @3h
David Demelier <markand@malikania.fr>
parents:
diff changeset
542 {
773
8c44bbcbbab9 Misc: style, cleanup and update
David Demelier <markand@malikania.fr>
parents: 761
diff changeset
543 std::unique_ptr<EditLine, void (*)(EditLine*)> el(
8c44bbcbbab9 Misc: style, cleanup and update
David Demelier <markand@malikania.fr>
parents: 761
diff changeset
544 el_init("irccd-test", stdin, stdout, stderr),
8c44bbcbbab9 Misc: style, cleanup and update
David Demelier <markand@malikania.fr>
parents: 761
diff changeset
545 el_end
8c44bbcbbab9 Misc: style, cleanup and update
David Demelier <markand@malikania.fr>
parents: 761
diff changeset
546 );
8c44bbcbbab9 Misc: style, cleanup and update
David Demelier <markand@malikania.fr>
parents: 761
diff changeset
547 std::unique_ptr<History, void (*)(History*)> hist(
8c44bbcbbab9 Misc: style, cleanup and update
David Demelier <markand@malikania.fr>
parents: 761
diff changeset
548 history_init(),
8c44bbcbbab9 Misc: style, cleanup and update
David Demelier <markand@malikania.fr>
parents: 761
diff changeset
549 history_end
8c44bbcbbab9 Misc: style, cleanup and update
David Demelier <markand@malikania.fr>
parents: 761
diff changeset
550 );
8c44bbcbbab9 Misc: style, cleanup and update
David Demelier <markand@malikania.fr>
parents: 761
diff changeset
551 HistEvent hev;
620
c79ae2987955 Irccd: create a brand new irccd-test executable, closes #569 @3h
David Demelier <markand@malikania.fr>
parents:
diff changeset
552
773
8c44bbcbbab9 Misc: style, cleanup and update
David Demelier <markand@malikania.fr>
parents: 761
diff changeset
553 history(hist.get(), &hev, H_SETSIZE, 1024);
8c44bbcbbab9 Misc: style, cleanup and update
David Demelier <markand@malikania.fr>
parents: 761
diff changeset
554 el_set(el.get(), EL_EDITOR, "emacs");
8c44bbcbbab9 Misc: style, cleanup and update
David Demelier <markand@malikania.fr>
parents: 761
diff changeset
555 el_set(el.get(), EL_PROMPT, prompt);
8c44bbcbbab9 Misc: style, cleanup and update
David Demelier <markand@malikania.fr>
parents: 761
diff changeset
556 el_set(el.get(), EL_HIST, history, hist.get());
8c44bbcbbab9 Misc: style, cleanup and update
David Demelier <markand@malikania.fr>
parents: 761
diff changeset
557 el_set(el.get(), EL_ADDFN, "ed-complete", "Complete command", complete);
8c44bbcbbab9 Misc: style, cleanup and update
David Demelier <markand@malikania.fr>
parents: 761
diff changeset
558 el_set(el.get(), EL_BIND, "^I", "ed-complete", nullptr);
620
c79ae2987955 Irccd: create a brand new irccd-test executable, closes #569 @3h
David Demelier <markand@malikania.fr>
parents:
diff changeset
559
773
8c44bbcbbab9 Misc: style, cleanup and update
David Demelier <markand@malikania.fr>
parents: 761
diff changeset
560 const char* s;
8c44bbcbbab9 Misc: style, cleanup and update
David Demelier <markand@malikania.fr>
parents: 761
diff changeset
561 int size;
620
c79ae2987955 Irccd: create a brand new irccd-test executable, closes #569 @3h
David Demelier <markand@malikania.fr>
parents:
diff changeset
562
773
8c44bbcbbab9 Misc: style, cleanup and update
David Demelier <markand@malikania.fr>
parents: 761
diff changeset
563 while ((s = el_gets(el.get(), &size)) && size >= 0) {
8c44bbcbbab9 Misc: style, cleanup and update
David Demelier <markand@malikania.fr>
parents: 761
diff changeset
564 if (size > 0)
8c44bbcbbab9 Misc: style, cleanup and update
David Demelier <markand@malikania.fr>
parents: 761
diff changeset
565 history(hist.get(), &hev, H_ENTER, s);
620
c79ae2987955 Irccd: create a brand new irccd-test executable, closes #569 @3h
David Demelier <markand@malikania.fr>
parents:
diff changeset
566
773
8c44bbcbbab9 Misc: style, cleanup and update
David Demelier <markand@malikania.fr>
parents: 761
diff changeset
567 exec(clean(s));
8c44bbcbbab9 Misc: style, cleanup and update
David Demelier <markand@malikania.fr>
parents: 761
diff changeset
568 }
620
c79ae2987955 Irccd: create a brand new irccd-test executable, closes #569 @3h
David Demelier <markand@malikania.fr>
parents:
diff changeset
569 }
c79ae2987955 Irccd: create a brand new irccd-test executable, closes #569 @3h
David Demelier <markand@malikania.fr>
parents:
diff changeset
570
689
c0c2926a35df Irccdctl: cleanup main.cpp
David Demelier <markand@malikania.fr>
parents: 657
diff changeset
571 // }}}
c0c2926a35df Irccdctl: cleanup main.cpp
David Demelier <markand@malikania.fr>
parents: 657
diff changeset
572
620
c79ae2987955 Irccd: create a brand new irccd-test executable, closes #569 @3h
David Demelier <markand@malikania.fr>
parents:
diff changeset
573 #else
c79ae2987955 Irccd: create a brand new irccd-test executable, closes #569 @3h
David Demelier <markand@malikania.fr>
parents:
diff changeset
574
689
c0c2926a35df Irccdctl: cleanup main.cpp
David Demelier <markand@malikania.fr>
parents: 657
diff changeset
575 // {{{ run (standard version)
c0c2926a35df Irccdctl: cleanup main.cpp
David Demelier <markand@malikania.fr>
parents: 657
diff changeset
576
620
c79ae2987955 Irccd: create a brand new irccd-test executable, closes #569 @3h
David Demelier <markand@malikania.fr>
parents:
diff changeset
577 void run()
c79ae2987955 Irccd: create a brand new irccd-test executable, closes #569 @3h
David Demelier <markand@malikania.fr>
parents:
diff changeset
578 {
773
8c44bbcbbab9 Misc: style, cleanup and update
David Demelier <markand@malikania.fr>
parents: 761
diff changeset
579 std::string line;
620
c79ae2987955 Irccd: create a brand new irccd-test executable, closes #569 @3h
David Demelier <markand@malikania.fr>
parents:
diff changeset
580
773
8c44bbcbbab9 Misc: style, cleanup and update
David Demelier <markand@malikania.fr>
parents: 761
diff changeset
581 for (;;) {
8c44bbcbbab9 Misc: style, cleanup and update
David Demelier <markand@malikania.fr>
parents: 761
diff changeset
582 std::cout << "> ";
657
c09aee75fde4 Irccd: style (irccd-test) #782
David Demelier <markand@malikania.fr>
parents: 644
diff changeset
583
773
8c44bbcbbab9 Misc: style, cleanup and update
David Demelier <markand@malikania.fr>
parents: 761
diff changeset
584 if (!std::getline(std::cin, line))
8c44bbcbbab9 Misc: style, cleanup and update
David Demelier <markand@malikania.fr>
parents: 761
diff changeset
585 return;
657
c09aee75fde4 Irccd: style (irccd-test) #782
David Demelier <markand@malikania.fr>
parents: 644
diff changeset
586
773
8c44bbcbbab9 Misc: style, cleanup and update
David Demelier <markand@malikania.fr>
parents: 761
diff changeset
587 exec(line);
8c44bbcbbab9 Misc: style, cleanup and update
David Demelier <markand@malikania.fr>
parents: 761
diff changeset
588 }
620
c79ae2987955 Irccd: create a brand new irccd-test executable, closes #569 @3h
David Demelier <markand@malikania.fr>
parents:
diff changeset
589 }
c79ae2987955 Irccd: create a brand new irccd-test executable, closes #569 @3h
David Demelier <markand@malikania.fr>
parents:
diff changeset
590
689
c0c2926a35df Irccdctl: cleanup main.cpp
David Demelier <markand@malikania.fr>
parents: 657
diff changeset
591 // }}}
c0c2926a35df Irccdctl: cleanup main.cpp
David Demelier <markand@malikania.fr>
parents: 657
diff changeset
592
620
c79ae2987955 Irccd: create a brand new irccd-test executable, closes #569 @3h
David Demelier <markand@malikania.fr>
parents:
diff changeset
593 #endif
c79ae2987955 Irccd: create a brand new irccd-test executable, closes #569 @3h
David Demelier <markand@malikania.fr>
parents:
diff changeset
594
689
c0c2926a35df Irccdctl: cleanup main.cpp
David Demelier <markand@malikania.fr>
parents: 657
diff changeset
595 // {{{ load_plugins
c0c2926a35df Irccdctl: cleanup main.cpp
David Demelier <markand@malikania.fr>
parents: 657
diff changeset
596
850
688f28dd3241 irccd: remove short options, closes #1673
David Demelier <markand@malikania.fr>
parents: 841
diff changeset
597 void load_plugins(const options::pack& result)
620
c79ae2987955 Irccd: create a brand new irccd-test executable, closes #569 @3h
David Demelier <markand@malikania.fr>
parents:
diff changeset
598 {
850
688f28dd3241 irccd: remove short options, closes #1673
David Demelier <markand@malikania.fr>
parents: 841
diff changeset
599 const auto& [ args, _ ] = result;
688f28dd3241 irccd: remove short options, closes #1673
David Demelier <markand@malikania.fr>
parents: 841
diff changeset
600
688f28dd3241 irccd: remove short options, closes #1673
David Demelier <markand@malikania.fr>
parents: 841
diff changeset
601 if (args.size() != 1U)
773
8c44bbcbbab9 Misc: style, cleanup and update
David Demelier <markand@malikania.fr>
parents: 761
diff changeset
602 usage();
850
688f28dd3241 irccd: remove short options, closes #1673
David Demelier <markand@malikania.fr>
parents: 841
diff changeset
603 // NOTREACHED
620
c79ae2987955 Irccd: create a brand new irccd-test executable, closes #569 @3h
David Demelier <markand@malikania.fr>
parents:
diff changeset
604
850
688f28dd3241 irccd: remove short options, closes #1673
David Demelier <markand@malikania.fr>
parents: 841
diff changeset
605 daemon->get_plugins().load("test", boost::filesystem::exists(args[0]) ? args[0] : "");
841
1399755352e7 irccd: use appropriate function names in bot
David Demelier <markand@malikania.fr>
parents: 825
diff changeset
606 plugin = daemon->get_plugins().get("test");
620
c79ae2987955 Irccd: create a brand new irccd-test executable, closes #569 @3h
David Demelier <markand@malikania.fr>
parents:
diff changeset
607 }
c79ae2987955 Irccd: create a brand new irccd-test executable, closes #569 @3h
David Demelier <markand@malikania.fr>
parents:
diff changeset
608
689
c0c2926a35df Irccdctl: cleanup main.cpp
David Demelier <markand@malikania.fr>
parents: 657
diff changeset
609 // }}}
c0c2926a35df Irccdctl: cleanup main.cpp
David Demelier <markand@malikania.fr>
parents: 657
diff changeset
610
746
fe3d80412701 Irccd: load config in irccd-test
David Demelier <markand@malikania.fr>
parents: 729
diff changeset
611 // {{{ load_config
fe3d80412701 Irccd: load config in irccd-test
David Demelier <markand@malikania.fr>
parents: 729
diff changeset
612
850
688f28dd3241 irccd: remove short options, closes #1673
David Demelier <markand@malikania.fr>
parents: 841
diff changeset
613 auto load_config(const options::pack& result) -> config
746
fe3d80412701 Irccd: load config in irccd-test
David Demelier <markand@malikania.fr>
parents: 729
diff changeset
614 {
850
688f28dd3241 irccd: remove short options, closes #1673
David Demelier <markand@malikania.fr>
parents: 841
diff changeset
615 const auto& [ _, options ] = result;
746
fe3d80412701 Irccd: load config in irccd-test
David Demelier <markand@malikania.fr>
parents: 729
diff changeset
616
850
688f28dd3241 irccd: remove short options, closes #1673
David Demelier <markand@malikania.fr>
parents: 841
diff changeset
617 if (const auto it = options.find('c'); it != options.end())
773
8c44bbcbbab9 Misc: style, cleanup and update
David Demelier <markand@malikania.fr>
parents: 761
diff changeset
618 return config(it->second);
746
fe3d80412701 Irccd: load config in irccd-test
David Demelier <markand@malikania.fr>
parents: 729
diff changeset
619
850
688f28dd3241 irccd: remove short options, closes #1673
David Demelier <markand@malikania.fr>
parents: 841
diff changeset
620 return config::search("irccd.conf").value_or(config());
746
fe3d80412701 Irccd: load config in irccd-test
David Demelier <markand@malikania.fr>
parents: 729
diff changeset
621 }
fe3d80412701 Irccd: load config in irccd-test
David Demelier <markand@malikania.fr>
parents: 729
diff changeset
622
fe3d80412701 Irccd: load config in irccd-test
David Demelier <markand@malikania.fr>
parents: 729
diff changeset
623 // }}}
fe3d80412701 Irccd: load config in irccd-test
David Demelier <markand@malikania.fr>
parents: 729
diff changeset
624
850
688f28dd3241 irccd: remove short options, closes #1673
David Demelier <markand@malikania.fr>
parents: 841
diff changeset
625 // {{{ load_cli
689
c0c2926a35df Irccdctl: cleanup main.cpp
David Demelier <markand@malikania.fr>
parents: 657
diff changeset
626
850
688f28dd3241 irccd: remove short options, closes #1673
David Demelier <markand@malikania.fr>
parents: 841
diff changeset
627 auto load_cli(int argc, char** argv) -> options::pack
620
c79ae2987955 Irccd: create a brand new irccd-test executable, closes #569 @3h
David Demelier <markand@malikania.fr>
parents:
diff changeset
628 {
773
8c44bbcbbab9 Misc: style, cleanup and update
David Demelier <markand@malikania.fr>
parents: 761
diff changeset
629 try {
850
688f28dd3241 irccd: remove short options, closes #1673
David Demelier <markand@malikania.fr>
parents: 841
diff changeset
630 return options::parse(argc, argv, "c:");
773
8c44bbcbbab9 Misc: style, cleanup and update
David Demelier <markand@malikania.fr>
parents: 761
diff changeset
631 } catch (const std::exception& ex) {
850
688f28dd3241 irccd: remove short options, closes #1673
David Demelier <markand@malikania.fr>
parents: 841
diff changeset
632 std::cerr << "abort: " << ex.what() << std::endl;
688f28dd3241 irccd: remove short options, closes #1673
David Demelier <markand@malikania.fr>
parents: 841
diff changeset
633 usage();
688f28dd3241 irccd: remove short options, closes #1673
David Demelier <markand@malikania.fr>
parents: 841
diff changeset
634 // NOTREACHED
773
8c44bbcbbab9 Misc: style, cleanup and update
David Demelier <markand@malikania.fr>
parents: 761
diff changeset
635 }
620
c79ae2987955 Irccd: create a brand new irccd-test executable, closes #569 @3h
David Demelier <markand@malikania.fr>
parents:
diff changeset
636 }
c79ae2987955 Irccd: create a brand new irccd-test executable, closes #569 @3h
David Demelier <markand@malikania.fr>
parents:
diff changeset
637
689
c0c2926a35df Irccdctl: cleanup main.cpp
David Demelier <markand@malikania.fr>
parents: 657
diff changeset
638 // }}}
c0c2926a35df Irccdctl: cleanup main.cpp
David Demelier <markand@malikania.fr>
parents: 657
diff changeset
639
c0c2926a35df Irccdctl: cleanup main.cpp
David Demelier <markand@malikania.fr>
parents: 657
diff changeset
640 // {{{ load
c0c2926a35df Irccdctl: cleanup main.cpp
David Demelier <markand@malikania.fr>
parents: 657
diff changeset
641
620
c79ae2987955 Irccd: create a brand new irccd-test executable, closes #569 @3h
David Demelier <markand@malikania.fr>
parents:
diff changeset
642 void load(int argc, char** argv)
c79ae2987955 Irccd: create a brand new irccd-test executable, closes #569 @3h
David Demelier <markand@malikania.fr>
parents:
diff changeset
643 {
809
8460b4a34191 misc: reorganize namespaces, closes #952 @4h
David Demelier <markand@malikania.fr>
parents: 797
diff changeset
644 daemon = std::make_unique<bot>(io);
841
1399755352e7 irccd: use appropriate function names in bot
David Demelier <markand@malikania.fr>
parents: 825
diff changeset
645 daemon->get_plugins().add_loader(std::make_unique<dynlib_plugin_loader>());
620
c79ae2987955 Irccd: create a brand new irccd-test executable, closes #569 @3h
David Demelier <markand@malikania.fr>
parents:
diff changeset
646
761
f25c878d823b Irccd: re-enable javascript in irccd, irccd-test
David Demelier <markand@malikania.fr>
parents: 757
diff changeset
647 #if defined(IRCCD_HAVE_JS)
825
e9da936309df irccd: fix build without Javascript
David Demelier <markand@malikania.fr>
parents: 824
diff changeset
648 auto loader = std::make_unique<js::plugin_loader>(*daemon);
757
97b356010785 Irccd: create (command|jsapi)::registry
David Demelier <markand@malikania.fr>
parents: 754
diff changeset
649
825
e9da936309df irccd: fix build without Javascript
David Demelier <markand@malikania.fr>
parents: 824
diff changeset
650 for (const auto& f : js::api::registry())
773
8c44bbcbbab9 Misc: style, cleanup and update
David Demelier <markand@malikania.fr>
parents: 761
diff changeset
651 loader->get_modules().push_back(f());
757
97b356010785 Irccd: create (command|jsapi)::registry
David Demelier <markand@malikania.fr>
parents: 754
diff changeset
652
841
1399755352e7 irccd: use appropriate function names in bot
David Demelier <markand@malikania.fr>
parents: 825
diff changeset
653 daemon->get_plugins().add_loader(std::move(loader));
620
c79ae2987955 Irccd: create a brand new irccd-test executable, closes #569 @3h
David Demelier <markand@malikania.fr>
parents:
diff changeset
654 #endif
c79ae2987955 Irccd: create a brand new irccd-test executable, closes #569 @3h
David Demelier <markand@malikania.fr>
parents:
diff changeset
655
850
688f28dd3241 irccd: remove short options, closes #1673
David Demelier <markand@malikania.fr>
parents: 841
diff changeset
656 const auto pack = load_cli(argc, argv);
688f28dd3241 irccd: remove short options, closes #1673
David Demelier <markand@malikania.fr>
parents: 841
diff changeset
657
688f28dd3241 irccd: remove short options, closes #1673
David Demelier <markand@malikania.fr>
parents: 841
diff changeset
658 puts("ARGS");
688f28dd3241 irccd: remove short options, closes #1673
David Demelier <markand@malikania.fr>
parents: 841
diff changeset
659 for (const auto& a : std::get<0>(pack))
688f28dd3241 irccd: remove short options, closes #1673
David Demelier <markand@malikania.fr>
parents: 841
diff changeset
660 std::cout << a << std::endl;
688f28dd3241 irccd: remove short options, closes #1673
David Demelier <markand@malikania.fr>
parents: 841
diff changeset
661 puts("OPTIONS");
688f28dd3241 irccd: remove short options, closes #1673
David Demelier <markand@malikania.fr>
parents: 841
diff changeset
662 for (const auto& [k,v] : std::get<1>(pack))
688f28dd3241 irccd: remove short options, closes #1673
David Demelier <markand@malikania.fr>
parents: 841
diff changeset
663 std::cout << k << " = " << v << std::endl;
688f28dd3241 irccd: remove short options, closes #1673
David Demelier <markand@malikania.fr>
parents: 841
diff changeset
664
688f28dd3241 irccd: remove short options, closes #1673
David Demelier <markand@malikania.fr>
parents: 841
diff changeset
665 load_config(pack);
688f28dd3241 irccd: remove short options, closes #1673
David Demelier <markand@malikania.fr>
parents: 841
diff changeset
666 load_plugins(pack);
620
c79ae2987955 Irccd: create a brand new irccd-test executable, closes #569 @3h
David Demelier <markand@malikania.fr>
parents:
diff changeset
667 }
c79ae2987955 Irccd: create a brand new irccd-test executable, closes #569 @3h
David Demelier <markand@malikania.fr>
parents:
diff changeset
668
689
c0c2926a35df Irccdctl: cleanup main.cpp
David Demelier <markand@malikania.fr>
parents: 657
diff changeset
669 // }}}
c0c2926a35df Irccdctl: cleanup main.cpp
David Demelier <markand@malikania.fr>
parents: 657
diff changeset
670
620
c79ae2987955 Irccd: create a brand new irccd-test executable, closes #569 @3h
David Demelier <markand@malikania.fr>
parents:
diff changeset
671 } // !namespace
c79ae2987955 Irccd: create a brand new irccd-test executable, closes #569 @3h
David Demelier <markand@malikania.fr>
parents:
diff changeset
672
797
2dfba38e93f0 cmake: fix headers installation, closes #924 @1h
David Demelier <markand@malikania.fr>
parents: 785
diff changeset
673 } // !irccd::test
620
c79ae2987955 Irccd: create a brand new irccd-test executable, closes #569 @3h
David Demelier <markand@malikania.fr>
parents:
diff changeset
674
c79ae2987955 Irccd: create a brand new irccd-test executable, closes #569 @3h
David Demelier <markand@malikania.fr>
parents:
diff changeset
675 int main(int argc, char** argv)
c79ae2987955 Irccd: create a brand new irccd-test executable, closes #569 @3h
David Demelier <markand@malikania.fr>
parents:
diff changeset
676 {
773
8c44bbcbbab9 Misc: style, cleanup and update
David Demelier <markand@malikania.fr>
parents: 761
diff changeset
677 try {
797
2dfba38e93f0 cmake: fix headers installation, closes #924 @1h
David Demelier <markand@malikania.fr>
parents: 785
diff changeset
678 irccd::test::load(--argc, ++argv);
2dfba38e93f0 cmake: fix headers installation, closes #924 @1h
David Demelier <markand@malikania.fr>
parents: 785
diff changeset
679 irccd::test::run();
773
8c44bbcbbab9 Misc: style, cleanup and update
David Demelier <markand@malikania.fr>
parents: 761
diff changeset
680 } catch (const std::exception& ex) {
8c44bbcbbab9 Misc: style, cleanup and update
David Demelier <markand@malikania.fr>
parents: 761
diff changeset
681 std::cerr << "abort: " << ex.what() << std::endl;
8c44bbcbbab9 Misc: style, cleanup and update
David Demelier <markand@malikania.fr>
parents: 761
diff changeset
682 return 1;
8c44bbcbbab9 Misc: style, cleanup and update
David Demelier <markand@malikania.fr>
parents: 761
diff changeset
683 }
620
c79ae2987955 Irccd: create a brand new irccd-test executable, closes #569 @3h
David Demelier <markand@malikania.fr>
parents:
diff changeset
684 }