diff --git a/GeoModelCore/GeoModelHelpers/GeoModelHelpers/StringUtils.h b/GeoModelCore/GeoModelHelpers/GeoModelHelpers/StringUtils.h index 6a7a3d2f24b553858b2d8383909145df4e859fd5..94a603805e99a3325d3ecb9f8fc5f7cf540dc1fc 100644 --- a/GeoModelCore/GeoModelHelpers/GeoModelHelpers/StringUtils.h +++ b/GeoModelCore/GeoModelHelpers/GeoModelHelpers/StringUtils.h @@ -28,6 +28,8 @@ namespace GeoStrUtils{ /// @return std::string resolveEnviromentVariables(const std::string_view str); + std::string getEnvVar(const std::string_view key); + /// @brief returns the longest substring that's common between the /// two given strings starting from character 0 std::string_view longestCommonString(const std::string_view firstStr, diff --git a/GeoModelCore/GeoModelHelpers/src/StringUtils.cxx b/GeoModelCore/GeoModelHelpers/src/StringUtils.cxx index 557a33534a25fcb0bde40271ed1caf9e564a11f6..f7b342f69c6a025520a7dca52248f2b731286b47 100644 --- a/GeoModelCore/GeoModelHelpers/src/StringUtils.cxx +++ b/GeoModelCore/GeoModelHelpers/src/StringUtils.cxx @@ -51,7 +51,14 @@ namespace GeoStrUtils { } return str; } - + + std::string getEnvVar(const std::string_view key) + { + std::string keyStr{key}; + char *val = std::getenv(keyStr.c_str()); + return val == NULL ? std::string{} : std::string(val); + } + std::vector<std::string> tokenize(const std::string& str, std::string_view delimiters) { diff --git a/GeoModelCore/GeoModelHelpers/tests/testStringUtils.cxx b/GeoModelCore/GeoModelHelpers/tests/testStringUtils.cxx index 1fa425cc78555ca9c8e7ff0a46207365e5ecbc15..0a9b63c447b72f766e90783235f0af487e767bd7 100644 --- a/GeoModelCore/GeoModelHelpers/tests/testStringUtils.cxx +++ b/GeoModelCore/GeoModelHelpers/tests/testStringUtils.cxx @@ -8,11 +8,11 @@ #include <stdlib.h> using namespace GeoStrUtils; -namespace { - std::string getEnvVar(const std::string& varName){ - return std::getenv(varName.c_str()) ? std::string{std::getenv(varName.c_str())} : std::string{}; - } -} +// namespace { +// std::string getEnvVar(const std::string& varName){ +// return std::getenv(varName.c_str()) ? std::string{std::getenv(varName.c_str())} : std::string{}; +// } +// } int main() { if (resolveEnviromentVariables("${PWD}") != getEnvVar("PWD")) {