From d56b48437ece38e85714e61405908a42f1a6d761 Mon Sep 17 00:00:00 2001 From: Anna Wellmann <a.wellmann@tu-bs.de> Date: Mon, 17 Apr 2023 08:23:46 +0000 Subject: [PATCH] Add helper function for loading the config --- src/basics/config/ConfigurationFile.h | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) diff --git a/src/basics/config/ConfigurationFile.h b/src/basics/config/ConfigurationFile.h index 3bf9e8072..c0cd06ca8 100644 --- a/src/basics/config/ConfigurationFile.h +++ b/src/basics/config/ConfigurationFile.h @@ -1,6 +1,8 @@ #ifndef BASICS_CONFIGURATIONFILE_H #define BASICS_CONFIGURATIONFILE_H +#include "Logger.h" +#include <filesystem> #include <map> #include <vector> #include <sstream> @@ -68,6 +70,26 @@ public: template<class T> T getValue(const std::string& key, T defaultValue) const; + static ConfigurationFile loadConfig(int argc, char *argv[], std::filesystem::path configPath, std::string defaultConfigName = "config.txt") + { + // the config file's default name can be replaced by passing a command line argument + + std::string configName = defaultConfigName; + + if (argc > 1) + { + configName = argv[1]; + VF_LOG_INFO("Using configFile command line argument: {}", configName); + } else { + VF_LOG_INFO("Using default config name: {}", configName); + } + + configPath.replace_filename(configName); + vf::basics::ConfigurationFile config; + config.load(configPath.string()); + return config; + } + private: //! the container std::map<std::string, std::string> data; -- GitLab