Mercurial > irccd
diff irccdctl/main.cpp @ 602:24959a94de96
Irccdctl: use config class, closes #749
author | David Demelier <markand@malikania.fr> |
---|---|
date | Thu, 07 Dec 2017 20:07:10 +0100 |
parents | e531f04507aa |
children | 4761e7cbb6f7 |
line wrap: on
line diff
--- a/irccdctl/main.cpp Wed Dec 06 21:47:11 2017 +0100 +++ b/irccdctl/main.cpp Thu Dec 07 20:07:10 2017 +0100 @@ -23,7 +23,7 @@ #include <boost/filesystem.hpp> #include <boost/timer/timer.hpp> -#include <irccd/ini.hpp> +#include <irccd/config.hpp> #include <irccd/json_util.hpp> #include <irccd/options.hpp> #include <irccd/string_util.hpp> @@ -257,28 +257,23 @@ return alias; } -void read(const std::string& path) +void read(const config& cfg) { - try { - ini::document doc = ini::read_file(path); - ini::document::const_iterator it; + ini::document::const_iterator it; - if (!ctl && (it = doc.find("connect")) != doc.end()) - read_connect(*it); - if ((it = doc.find("general")) != doc.end()) - read_general(*it); + if (!ctl && (it = cfg.doc().find("connect")) != cfg.doc().end()) + read_connect(*it); + if ((it = cfg.doc().find("general")) != cfg.doc().end()) + read_general(*it); - // [alias.*] sections. - for (const auto& sc : doc) { - if (sc.key().compare(0, 6, "alias.") == 0) { - auto name = sc.key().substr(6); - auto alias = read_alias(sc, name); + // [alias.*] sections. + for (const auto& sc : cfg.doc()) { + if (sc.key().compare(0, 6, "alias.") == 0) { + auto name = sc.key().substr(6); + auto alias = read_alias(sc, name); - aliases.emplace(std::move(name), std::move(alias)); - } + aliases.emplace(std::move(name), std::move(alias)); } - } catch (const std::exception &ex) { - std::cerr << path << ": " << ex.what() << std::endl; } } @@ -573,14 +568,8 @@ if (it != result.end() || (it = result.find("--config")) != result.end()) irccd::ctl::read(it->second); else { - for (const auto& path : irccd::sys::config_filenames("irccdctl.conf")) { - boost::system::error_code ec; - - if (boost::filesystem::exists(path, ec) && !ec) { - irccd::ctl::read(path); - break; - } - } + if (auto conf = irccd::config::find("irccdctl.conf")) + irccd::ctl::read(*conf); } } catch (const std::exception& ex) { std::cerr << "abort: " << ex.what() << std::endl;