changeset 747:0731acfe646d

Irccd: fix default plugin paths substitution
author David Demelier <markand@malikania.fr>
date Fri, 03 Aug 2018 12:41:00 +0200
parents fe3d80412701
children 59029f36db60
files libirccd/irccd/daemon/service/plugin_service.cpp
diffstat 1 files changed, 10 insertions(+), 6 deletions(-) [+]
line wrap: on
line diff
--- a/libirccd/irccd/daemon/service/plugin_service.cpp	Fri Aug 03 12:15:00 2018 +0200
+++ b/libirccd/irccd/daemon/service/plugin_service.cpp	Fri Aug 03 12:41:00 2018 +0200
@@ -125,19 +125,23 @@
 
     // Fill defaults paths.
     if (!defaults.count("cache"))
-        defaults.emplace("cache", (sys::cachedir() / "plugin" / std::string(id)).string());
+        defaults.emplace("cache", sys::cachedir().string());
     if (!defaults.count("data"))
-        paths.emplace("data", (sys::datadir() / "plugin" / std::string(id)).string());
+        defaults.emplace("data", sys::datadir().string());
     if (!defaults.count("config"))
-        paths.emplace("config", (sys::sysconfdir() / "plugin" / std::string(id)).string());
+        defaults.emplace("config", sys::sysconfdir().string());
+
+    const auto join = [id] (auto path) {
+        return (boost::filesystem::path(path) / "plugin" / std::string(id)).string();
+    };
 
     // Now fill missing fields.
     if (!paths.count("cache"))
-        paths.emplace("cache", defaults["cache"]);
+        paths.emplace("cache", join(defaults["cache"]));
     if (!paths.count("data"))
-        paths.emplace("data", defaults["data"]);
+        paths.emplace("data", join(defaults["data"]));
     if (!paths.count("config"))
-        paths.emplace("config", defaults["config"]);
+        paths.emplace("config", join(defaults["config"]));
 
     return paths;
 }