Add parameter to force recursion (don't honour recurseIntoAttrs)
This can be useful when you are not in control over your expressions. My use case is evaluating a Hydra jobset.
This commit is contained in:
parent
9b0ef420d3
commit
b9836f2e06
|
@ -45,6 +45,7 @@ struct MyArgs : MixEvalArgs, MixCommonArgs {
|
||||||
bool meta = false;
|
bool meta = false;
|
||||||
bool showTrace = false;
|
bool showTrace = false;
|
||||||
bool impure = false;
|
bool impure = false;
|
||||||
|
bool forceRecurse = false;
|
||||||
bool checkCacheStatus = false;
|
bool checkCacheStatus = false;
|
||||||
size_t nrWorkers = 1;
|
size_t nrWorkers = 1;
|
||||||
size_t maxMemorySize = 4096;
|
size_t maxMemorySize = 4096;
|
||||||
|
@ -70,6 +71,11 @@ struct MyArgs : MixEvalArgs, MixCommonArgs {
|
||||||
.description = "allow impure expressions",
|
.description = "allow impure expressions",
|
||||||
.handler = {&impure, true}});
|
.handler = {&impure, true}});
|
||||||
|
|
||||||
|
addFlag(
|
||||||
|
{.longName = "force-recurse",
|
||||||
|
.description = "force recursion (don't respect recurseIntoAttrs)",
|
||||||
|
.handler = {&forceRecurse, true}});
|
||||||
|
|
||||||
addFlag({.longName = "gc-roots-dir",
|
addFlag({.longName = "gc-roots-dir",
|
||||||
.description = "garbage collector roots directory",
|
.description = "garbage collector roots directory",
|
||||||
.labels = {"path"},
|
.labels = {"path"},
|
||||||
|
@ -321,6 +327,7 @@ static void worker(EvalState &state, Bindings &autoArgs, AutoCloseFD &to,
|
||||||
} else {
|
} else {
|
||||||
auto attrs = nlohmann::json::array();
|
auto attrs = nlohmann::json::array();
|
||||||
bool recurse =
|
bool recurse =
|
||||||
|
myArgs.forceRecurse ||
|
||||||
path.size() == 0; // Dont require `recurseForDerivations
|
path.size() == 0; // Dont require `recurseForDerivations
|
||||||
// = true;` for top-level attrset
|
// = true;` for top-level attrset
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue