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