mirror of
https://github.com/NixOS/nix.git
synced 2025-12-02 07:00:59 +01:00
-----BEGIN PGP SIGNATURE----- iQFHBAABCAAxFiEEtUHVUwEnDgvPFcpdgXC0cm1xmN4FAmfv9fITHGVkb2xzdHJh QGdtYWlsLmNvbQAKCRCBcLRybXGY3ohrCAC1Uw/JJr3yEPlJ/jLc9t9HqEKMY08W W6SEjpYJHYixMXmoonexkqojncNWBaiytRa+vBY7JQq0xTOOBwj42TM2ZzMF4GXi vO4Ox0hEsRa/v7tSmK6GFz1sNEKEUOHDNbilg4kzkkBHPEGPUGMwdWkT0akO576Q SQ6ERwPPLsHDI2YtAeAD8R4p07CraiyA34ljDPz3rChTAXRPVKWxJUt1enwEWYTr cKk45RcR4S8rP1BVwf3wsNsrHjqjbaY45kPAo8GD79hFH0zkyJarS3Kgv8qsWLra 9ph0DVVG0wiArlET7Y3uchqtAC0Z5LOnutAmOFYFw6DKfWp9yGfl/SVW =XRda -----END PGP SIGNATURE----- Merge tag '2.28.0' into sync-2.28.0 Tagging release 2.28.0
49 lines
1.8 KiB
C++
49 lines
1.8 KiB
C++
#include "nix/store/build-result.hh"
|
|
|
|
#include <nlohmann/json.hpp>
|
|
|
|
namespace nix {
|
|
|
|
bool BuildResult::operator==(const BuildResult &) const noexcept = default;
|
|
std::strong_ordering BuildResult::operator<=>(const BuildResult &) const noexcept = default;
|
|
|
|
void to_json(nlohmann::json & json, const BuildResult & buildResult)
|
|
{
|
|
json = nlohmann::json::object();
|
|
json["status"] = BuildResult::statusToString(buildResult.status);
|
|
if (buildResult.errorMsg != "")
|
|
json["errorMsg"] = buildResult.errorMsg;
|
|
if (buildResult.timesBuilt)
|
|
json["timesBuilt"] = buildResult.timesBuilt;
|
|
if (buildResult.isNonDeterministic)
|
|
json["isNonDeterministic"] = buildResult.isNonDeterministic;
|
|
if (buildResult.startTime)
|
|
json["startTime"] = buildResult.startTime;
|
|
if (buildResult.stopTime)
|
|
json["stopTime"] = buildResult.stopTime;
|
|
}
|
|
|
|
void to_json(nlohmann::json & json, const KeyedBuildResult & buildResult)
|
|
{
|
|
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;
|
|
auto outputs = nlohmann::json::object();
|
|
for (auto & [name, output] : buildResult.builtOutputs)
|
|
outputs[name] = {
|
|
{"path", output.outPath.to_string()},
|
|
{"signatures", output.signatures},
|
|
};
|
|
json["builtOutputs"] = std::move(outputs);
|
|
},
|
|
},
|
|
buildResult.path.raw());
|
|
json["path"] = std::move(path);
|
|
}
|
|
|
|
}
|