diff options
Diffstat (limited to 'src/dedicated/main.cc')
| -rw-r--r-- | src/dedicated/main.cc | 39 |
1 files changed, 39 insertions, 0 deletions
diff --git a/src/dedicated/main.cc b/src/dedicated/main.cc new file mode 100644 index 0000000..d9c5bb4 --- /dev/null +++ b/src/dedicated/main.cc @@ -0,0 +1,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; +} |
