Unified setup_environ b/t libomni and libomni-dl (#86)

- omnitrace::common::setup_environ provides a standardized exporting of relevant env variables
这个提交包含在:
Jonathan R. Madsen
2022-07-18 01:52:21 -05:00
提交者 GitHub
父节点 7745c12417
当前提交 a2dcc7381b
修改 10 个文件,包含 257 行新增142 行删除
+16 -10
查看文件
@@ -34,28 +34,34 @@ inline namespace common
namespace
{
inline std::string
get_env(const char* env_id, const char* _default)
get_env(std::string_view env_id, std::string_view _default)
{
if(strlen(env_id) == 0) return _default;
char* env_var = ::std::getenv(env_id);
if(env_id.empty()) return std::string{ _default };
char* env_var = ::std::getenv(env_id.data());
if(env_var) return std::string{ env_var };
return _default;
return std::string{ _default };
}
inline std::string
get_env(std::string_view env_id, const char* _default)
{
return get_env(env_id, std::string_view{ _default });
}
inline int
get_env(const char* env_id, int _default)
get_env(std::string_view env_id, int _default)
{
if(strlen(env_id) == 0) return _default;
char* env_var = ::std::getenv(env_id);
if(env_id.empty()) return _default;
char* env_var = ::std::getenv(env_id.data());
if(env_var) return std::stoi(env_var);
return _default;
}
inline bool
get_env(const char* env_id, bool _default)
get_env(std::string_view env_id, bool _default)
{
if(strlen(env_id) == 0) return _default;
char* env_var = ::std::getenv(env_id);
if(env_id.empty()) return _default;
char* env_var = ::std::getenv(env_id.data());
if(env_var)
{
if(std::string_view{ env_var }.find_first_not_of("0123456789") ==