mirror of
https://github.com/NixOS/nix
synced 2025-07-06 21:41:48 +02:00
Don't use DerivedPath::toJSON()
It doesn't work on unrealized paths.
This commit is contained in:
parent
762114b7c4
commit
fd0d824fa5
4 changed files with 22 additions and 12 deletions
|
@ -23,11 +23,20 @@ void to_json(nlohmann::json & json, const BuildResult & buildResult)
|
|||
json["stopTime"] = buildResult.stopTime;
|
||||
}
|
||||
|
||||
nlohmann::json KeyedBuildResult::toJSON(Store & store) const
|
||||
void to_json(nlohmann::json & json, const KeyedBuildResult & buildResult)
|
||||
{
|
||||
auto json = nlohmann::json((const BuildResult &) *this);
|
||||
json["path"] = path.toJSON(store);
|
||||
return json;
|
||||
to_json(json, (const BuildResult &) buildResult);
|
||||
auto path = nlohmann::json::object();
|
||||
std::visit(
|
||||
overloaded{
|
||||
[&](const DerivedPathOpaque & opaque) { path["opaque"] = opaque.path.to_string(); },
|
||||
[&](const DerivedPathBuilt & drv) {
|
||||
path["drvPath"] = drv.drvPath->getBaseStorePath().to_string();
|
||||
path["outputs"] = drv.outputs.to_string();
|
||||
},
|
||||
},
|
||||
buildResult.path.raw());
|
||||
json["path"] = std::move(path);
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
@ -134,10 +134,9 @@ struct KeyedBuildResult : BuildResult
|
|||
KeyedBuildResult(BuildResult res, DerivedPath path)
|
||||
: BuildResult(std::move(res)), path(std::move(path))
|
||||
{ }
|
||||
|
||||
nlohmann::json toJSON(Store & store) const;
|
||||
};
|
||||
|
||||
void to_json(nlohmann::json & json, const BuildResult & buildResult);
|
||||
void to_json(nlohmann::json & json, const KeyedBuildResult & buildResult);
|
||||
|
||||
}
|
||||
|
|
|
@ -1566,9 +1566,10 @@ Goal::Done DerivationGoal::done(
|
|||
logger->result(
|
||||
act ? act->id : getCurActivity(),
|
||||
resBuildResult,
|
||||
KeyedBuildResult(
|
||||
buildResult,
|
||||
DerivedPath::Built{.drvPath = makeConstantStorePathRef(drvPath), .outputs = wantedOutputs}).toJSON(worker.store));
|
||||
nlohmann::json(
|
||||
KeyedBuildResult(
|
||||
buildResult,
|
||||
DerivedPath::Built{.drvPath = makeConstantStorePathRef(drvPath), .outputs = wantedOutputs})));
|
||||
|
||||
return amDone(buildResult.success() ? ecSuccess : ecFailed, std::move(ex));
|
||||
}
|
||||
|
|
|
@ -42,9 +42,10 @@ Goal::Done PathSubstitutionGoal::done(
|
|||
logger->result(
|
||||
getCurActivity(),
|
||||
resBuildResult,
|
||||
KeyedBuildResult(
|
||||
buildResult,
|
||||
DerivedPath::Opaque{storePath}).toJSON(worker.store));
|
||||
nlohmann::json(
|
||||
KeyedBuildResult(
|
||||
buildResult,
|
||||
DerivedPath::Opaque{storePath})));
|
||||
|
||||
return amDone(result);
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue