MCPcopy Create free account
hub / github.com/catboost/catboost / TryGetEnv

Function TryGetEnv

util/system/env.cpp:25–54  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

23 */
24
25TMaybe<TString> TryGetEnv(const TString& key) {
26#ifdef _win_
27 size_t len = GetEnvironmentVariableA(key.data(), nullptr, 0);
28
29 if (len == 0) {
30 if (GetLastError() == ERROR_ENVVAR_NOT_FOUND) {
31 return Nothing();
32 }
33 return TString{};
34 }
35
36 TVector<char> buffer(len);
37 size_t bufferSize;
38 do {
39 bufferSize = buffer.size();
40 len = GetEnvironmentVariableA(key.data(), buffer.data(), static_cast<DWORD>(bufferSize));
41 if (len > bufferSize) {
42 buffer.resize(len);
43 }
44 } while (len > bufferSize);
45
46 return TString(buffer.data(), len);
47#else
48 const char* env = getenv(key.data());
49 if (!env) {
50 return Nothing();
51 }
52 return TString(env);
53#endif
54}
55
56TString GetEnv(const TString& key, const TString& def) {
57 TMaybe<TString> value = TryGetEnv(key);

Callers 2

GetEnvFunction · 0.85
Y_UNIT_TESTFunction · 0.85

Calls 4

NothingFunction · 0.85
dataMethod · 0.45
sizeMethod · 0.45
resizeMethod · 0.45

Tested by

no test coverage detected