Add full meta to output
While the current output may be sufficient for Hydra it's not enough for a more generically useful evaluator.
This commit is contained in:
parent
b92dfbba57
commit
19823c899d
|
@ -17,6 +17,8 @@
|
|||
#include <nix/derivations.hh>
|
||||
#include <nix/local-fs-store.hh>
|
||||
|
||||
#include <nix/value-to-json.hh>
|
||||
|
||||
#include <sys/types.h>
|
||||
#include <sys/wait.h>
|
||||
#include <sys/resource.h>
|
||||
|
@ -217,6 +219,16 @@ static void worker(
|
|||
job["maxSilent"] = drv->queryMetaInt("maxSilent", 7200);
|
||||
job["isChannel"] = drv->queryMetaBool("isHydraChannel", false);
|
||||
|
||||
nlohmann::json meta;
|
||||
for (auto & name : drv->queryMetaNames()) {
|
||||
PathSet context;
|
||||
std::stringstream ss;
|
||||
printValueAsJSON(state, true, *drv->queryMeta(name), ss, context);
|
||||
nlohmann::json field = nlohmann::json::parse(ss.str());
|
||||
meta[name] = field;
|
||||
}
|
||||
job["meta"] = meta;
|
||||
|
||||
/* If this is an aggregate, then get its constituents. */
|
||||
auto a = v->attrs->get(state.symbols.create("_hydraAggregate"));
|
||||
if (a && state.forceBool(*a->value, *a->pos)) {
|
||||
|
|
Loading…
Reference in a new issue