refactor(tvix): getEnv(): Return std::optional
This allows distinguishing between an empty value and no value.
Patch ported from upstream at
ba87b08f85
Change-Id: I061cc8e16b1a7a0341adfc3b0edca1c0c51d5c97
Reviewed-on: https://cl.tvl.fyi/c/depot/+/1884
Tested-by: BuildkiteCI
Reviewed-by: kanepyork <rikingcoding@gmail.com>
This commit is contained in:
parent
c5f3b12f04
commit
785cb3a754
17 changed files with 66 additions and 66 deletions
8
third_party/nix/src/libexpr/eval.cc
vendored
8
third_party/nix/src/libexpr/eval.cc
vendored
|
|
@ -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);
|
||||
|
|
|
|||
2
third_party/nix/src/libexpr/primops.cc
vendored
2
third_party/nix/src/libexpr/primops.cc
vendored
|
|
@ -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. */
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue