#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(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; }