diff options
author | Eelco Dolstra <edolstra@gmail.com> | 2019-11-22T15·06+0100 |
---|---|---|
committer | glittershark <grfn@gws.fyi> | 2020-09-01T02·21+0000 |
commit | 785cb3a75476033ba6eec2fef334d47d8e64388a (patch) | |
tree | 676d53868e29e0ab28443b9d13019c54754012f7 /third_party/nix/src/libexpr | |
parent | c5f3b12f0484cd1a5152b6c64a336e9852d7c484 (diff) |
refactor(tvix): getEnv(): Return std::optional r/1756
This allows distinguishing between an empty value and no value. Patch ported from upstream at https://github.com/NixOS/nix/commit/ba87b08f8529e4d9f8c58d8c625152058ceadb75 Change-Id: I061cc8e16b1a7a0341adfc3b0edca1c0c51d5c97 Reviewed-on: https://cl.tvl.fyi/c/depot/+/1884 Tested-by: BuildkiteCI Reviewed-by: kanepyork <rikingcoding@gmail.com>
Diffstat (limited to 'third_party/nix/src/libexpr')
-rw-r--r-- | third_party/nix/src/libexpr/eval.cc | 8 | ||||
-rw-r--r-- | third_party/nix/src/libexpr/primops.cc | 2 |
2 files changed, 5 insertions, 5 deletions
diff --git a/third_party/nix/src/libexpr/eval.cc b/third_party/nix/src/libexpr/eval.cc index b735495f2132..28ae46bdfd8c 100644 --- a/third_party/nix/src/libexpr/eval.cc +++ b/third_party/nix/src/libexpr/eval.cc @@ -287,11 +287,11 @@ EvalState::EvalState(const Strings& _searchPath, const ref<Store>& store) staticBaseEnv(false, nullptr) { expr::InitGC(); - countCalls = getEnv("NIX_COUNT_CALLS", "0") != "0"; + countCalls = getEnv("NIX_COUNT_CALLS").value_or("0") != "0"; /* Initialise the Nix expression search path. */ if (!evalSettings.pureEval) { - Strings paths = parseNixPath(getEnv("NIX_PATH", "")); + Strings paths = parseNixPath(getEnv("NIX_PATH").value_or("")); for (auto& i : _searchPath) { addToSearchPath(i); } @@ -1644,7 +1644,7 @@ bool EvalState::eqValues(Value& v1, Value& v2) { } void EvalState::printStats() { - bool showStats = getEnv("NIX_SHOW_STATS", "0") != "0"; + bool showStats = getEnv("NIX_SHOW_STATS").value_or("0") != "0"; struct rusage buf; getrusage(RUSAGE_SELF, &buf); @@ -1658,7 +1658,7 @@ void EvalState::printStats() { nrAttrsets * sizeof(Bindings) + nrAttrsInAttrsets * sizeof(Attr); if (showStats) { - auto outPath = getEnv("NIX_SHOW_STATS_PATH", "-"); + auto outPath = getEnv("NIX_SHOW_STATS_PATH").value_or("-"); std::fstream fs; if (outPath != "-") { fs.open(outPath, std::fstream::out); diff --git a/third_party/nix/src/libexpr/primops.cc b/third_party/nix/src/libexpr/primops.cc index 04a44311a259..dd8a509df32d 100644 --- a/third_party/nix/src/libexpr/primops.cc +++ b/third_party/nix/src/libexpr/primops.cc @@ -413,7 +413,7 @@ static void prim_getEnv(EvalState& state, const Pos& pos, Value** args, std::string name = state.forceStringNoCtx(*args[0], pos); mkString(v, evalSettings.restrictEval || evalSettings.pureEval ? "" - : getEnv(name)); + : getEnv(name).value_or("")); } /* Evaluate the first argument, then return the second argument. */ |