summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorRoland Reichwein <mail@reichwein.it>2022-11-26 09:12:23 +0100
committerRoland Reichwein <mail@reichwein.it>2022-11-26 09:12:23 +0100
commitf116c9146e53d885840ed957204d60d81fd858bd (patch)
tree8947c94a4e08360b210c2f4ca707ed902db14c14
parent32d1a989683f9a64e70f972d4a3e185a85a2c309 (diff)
Read and use config file
-rw-r--r--config.cpp25
-rw-r--r--debian/whiteboard.conf3
-rw-r--r--debian/whiteboard.install1
3 files changed, 27 insertions, 2 deletions
diff --git a/config.cpp b/config.cpp
index a3fcf3c..6e2e2b6 100644
--- a/config.cpp
+++ b/config.cpp
@@ -1,8 +1,29 @@
#include "config.h"
-Config::Config(): m_dataPath{"/var/lib/whiteboard"}
+#include <boost/property_tree/ptree.hpp>
+#include <boost/property_tree/xml_parser.hpp>
+
+#include <iostream>
+
+namespace pt = boost::property_tree;
+
+namespace {
+ const std::string default_datapath {"/var/lib/whiteboard"};
+ const std::string config_filename{"/etc/webserver.conf"};
+}
+
+Config::Config(): m_dataPath{default_datapath}
{
- // TODO: read /etc/whiteboard.conf xml
+
+ try {
+ pt::ptree tree;
+
+ pt::read_xml(config_filename, tree, pt::xml_parser::no_comments | pt::xml_parser::trim_whitespace);
+
+ m_dataPath = tree.get<std::string>("whiteboard.datapath", default_datapath);
+ } catch (const std::exception& ex) {
+ std::cerr << "Error reading config file " << config_filename << ". Using " << default_datapath << "." << std::endl;
+ }
}
std::string Config::getDataPath()
diff --git a/debian/whiteboard.conf b/debian/whiteboard.conf
new file mode 100644
index 0000000..91a868a
--- /dev/null
+++ b/debian/whiteboard.conf
@@ -0,0 +1,3 @@
+<whiteboard>
+ <datapath>/var/lib/whiteboard</datapath>
+<whiteboard>
diff --git a/debian/whiteboard.install b/debian/whiteboard.install
new file mode 100644
index 0000000..fa446b2
--- /dev/null
+++ b/debian/whiteboard.install
@@ -0,0 +1 @@
+debian/whiteboard.conf etc