diff irccdctl/main.cpp @ 641:7e2d0739f37c

Irccd: import json_util from code Change how parsing values from JSON is done, the json_util functions do not throw but return a boost::optional instead. Then, create some convenient local wrappers in server_util.cpp to throw on missing values. While here, add as much as possible const qualifier on variables that will not be modified.
author David Demelier <markand@malikania.fr>
date Tue, 20 Mar 2018 20:01:02 +0100
parents 27587ff92a64
children aae6d5a2b28d
line wrap: on
line diff
--- a/irccdctl/main.cpp	Tue Mar 20 19:45:01 2018 +0100
+++ b/irccdctl/main.cpp	Tue Mar 20 20:01:02 2018 +0100
@@ -85,7 +85,7 @@
 #endif
 
 // Global options.
-bool verbose = true;
+bool verbose = false;
 
 // Connection to instance.
 std::unique_ptr<connection> conn;
@@ -508,11 +508,17 @@
         if (code)
             throw boost::system::system_error(code);
 
-        if (verbose)
-            std::cout << string_util::sprintf("connected to irccd %d.%d.%d\n",
-                json_util::to_int(info["major"]),
-                json_util::to_int(info["minor"]),
-                json_util::to_int(info["patch"]));
+        if (verbose) {
+            const auto major = json_util::get_int(info, "/major"_json_pointer);
+            const auto minor = json_util::get_int(info, "/minor"_json_pointer);
+            const auto patch = json_util::get_int(info, "/patch"_json_pointer);
+
+            if (!major || !minor || !patch)
+                std::cout << "connected to irccd (unknown version)" << std::endl;
+            else
+                std::cout << string_util::sprintf("connected to irccd %d.%d.%d\n",
+                    *major, *minor, *patch);
+        }
 
         connected = true;
     });