From 020ddd59b1718002c9e9d4914dd035e9f2d2c962 Mon Sep 17 00:00:00 2001
From: Fabian Reister <fabian.reister@kit.edu>
Date: Tue, 6 Aug 2024 12:42:10 +0200
Subject: [PATCH] DiskMemoryItemMixin: allow memoryBasePath to contain
 environment variables

---
 .../ltm/detail/mixins/DiskStorageMixin.cpp    | 19 ++++++++++++-------
 1 file changed, 12 insertions(+), 7 deletions(-)

diff --git a/source/RobotAPI/libraries/armem/server/ltm/detail/mixins/DiskStorageMixin.cpp b/source/RobotAPI/libraries/armem/server/ltm/detail/mixins/DiskStorageMixin.cpp
index 480f04cb0..a7fbaa470 100644
--- a/source/RobotAPI/libraries/armem/server/ltm/detail/mixins/DiskStorageMixin.cpp
+++ b/source/RobotAPI/libraries/armem/server/ltm/detail/mixins/DiskStorageMixin.cpp
@@ -12,6 +12,7 @@
 // ArmarX
 #include <ArmarXCore/core/exceptions/LocalException.h>
 #include <ArmarXCore/core/logging/Logging.h>
+#include <ArmarXCore/core/system/ArmarXDataPath.h>
 #include <ArmarXCore/core/time/TimeUtil.h>
 
 namespace armarx::armem::server::ltm::detail::mixin
@@ -69,13 +70,17 @@ namespace armarx::armem::server::ltm::detail::mixin
     Path
     DiskMemoryItemMixin::getMemoryBasePath() const
     {
-        if(memoryBasePathString.empty()){
-            return memoryBasePath;
-        } else {
-            std::filesystem::path newPath;
-            newPath.assign(memoryBasePathString);
-            return newPath;
-        }
+        std::string p = [&](){
+            if(memoryBasePathString.empty()){
+                return memoryBasePath.string();
+            } 
+            
+            return memoryBasePathString;
+        }();
+
+        ArmarXDataPath::ReplaceEnvVars(p);
+
+        return p;
     }
 
     Path
-- 
GitLab