blob: d9c5bb4e1ebc072a11b882b94a3aac99589833d8 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
|
#include "main.hh"
static std::string& get_port() noexcept {
static std::string port{shared::DEFAULT_PORT};
return port;
}
static bool parse_arg(const int& c, const char* const arg) {
switch (c) {
case 'p':
get_port() = boost::lexical_cast<std::string>(arg);
break;
default:
return false;
}
return true;
}
static const shared::args_t& get_options() {
static shared::args_t ret = []() -> shared::args_t {
shared::args_t ret{
{.name = "port", .desc = "override the default port", .val = "p:"}};
std::ranges::copy(shared::get_options(), std::back_inserter(ret));
std::ranges::copy(server::get_options(), std::back_inserter(ret));
return ret;
}();
return ret;
}
int main(const int argc, char* const argv[]) {
shared::init();
shared::parse_args(argc, argv, get_options(),
{&parse_arg, &shared::parse_arg, &server::parse_arg});
shared::try_main(server::main, shared::DEFAULT_ADDRESS, get_port());
return EXIT_SUCCESS;
}
|