Mercurial > irccd
changeset 746:fe3d80412701
Irccd: load config in irccd-test
author | David Demelier <markand@malikania.fr> |
---|---|
date | Fri, 03 Aug 2018 12:15:00 +0200 |
parents | 903415e8ee2e |
children | 0731acfe646d |
files | irccd-test/main.cpp |
diffstat | 1 files changed, 21 insertions(+), 12 deletions(-) [+] |
line wrap: on
line diff
--- a/irccd-test/main.cpp Wed Aug 01 12:43:16 2018 +0200 +++ b/irccd-test/main.cpp Fri Aug 03 12:15:00 2018 +0200 @@ -593,26 +593,35 @@ // }}} +// {{{ load_config + +auto load_config(const option::result& result) -> config +{ + auto it = result.find("-c"); + + if (it != result.end() || (it = result.find("--config")) != result.end()) + return config(it->second); + + auto cfg = config::search("irccd.conf"); + + return *cfg; +} + +// }}} + // {{{ load_options void load_options(int& argc, char**& argv) { - const option::options def{ + static const option::options def{ { "-c", true }, { "--config", true } }; - auto result = option::read(argc, argv, def); - auto it = result.find("-c"); - - if (it == result.end()) - it = result.find("--config"); - if (it != result.end()) { - try { - daemon->set_config(it->second); - } catch (const std::exception& ex) { - throw std::runtime_error(str(format("%1%: %2%") % it->second % ex.what())); - } + try { + daemon->set_config(load_config(option::read(argc, argv, def))); + } catch (const std::exception& ex) { + throw std::runtime_error(str(format("%1%") % ex.what())); } }