mirror of
https://github.com/NixOS/nix
synced 2025-07-02 05:11:47 +02:00
Provide a structured JSON serialisation of hashes
This commit is contained in:
parent
2a2af3f72f
commit
c515bc66f1
3 changed files with 19 additions and 2 deletions
|
@ -2659,8 +2659,8 @@ SingleDrvOutputs LocalDerivationGoal::registerOutputs()
|
|||
act->result(resHashMismatch,
|
||||
{
|
||||
{"storePath", worker.store.printStorePath(drvPath)},
|
||||
{"wanted", wanted.to_string(HashFormat::SRI, true)},
|
||||
{"got", got.to_string(HashFormat::SRI, true)},
|
||||
{"wanted", wanted},
|
||||
{"got", got},
|
||||
});
|
||||
}
|
||||
if (!newInfo0.references.empty()) {
|
||||
|
|
|
@ -14,6 +14,8 @@
|
|||
#include <sys/stat.h>
|
||||
#include <fcntl.h>
|
||||
|
||||
#include <nlohmann/json.hpp>
|
||||
|
||||
#include <sodium.h>
|
||||
|
||||
namespace nix {
|
||||
|
@ -456,4 +458,13 @@ std::string_view printHashAlgo(HashAlgorithm ha)
|
|||
}
|
||||
}
|
||||
|
||||
void to_json(nlohmann::json & json, const Hash & hash)
|
||||
{
|
||||
json = nlohmann::json::object(
|
||||
{
|
||||
{"algo", printHashAlgo(hash.algo)},
|
||||
{"base16", hash.to_string(HashFormat::Base16, false)},
|
||||
});
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
@ -5,6 +5,8 @@
|
|||
#include "serialise.hh"
|
||||
#include "file-system.hh"
|
||||
|
||||
#include <nlohmann/json_fwd.hpp>
|
||||
|
||||
namespace nix {
|
||||
|
||||
|
||||
|
@ -209,6 +211,10 @@ std::optional<HashAlgorithm> parseHashAlgoOpt(std::string_view s);
|
|||
*/
|
||||
std::string_view printHashAlgo(HashAlgorithm ha);
|
||||
|
||||
/**
|
||||
* Write a JSON serialisation of the format `{"algo":"<sha1|...>","base16":"<hex>"}`.
|
||||
*/
|
||||
void to_json(nlohmann::json & json, const Hash & hash);
|
||||
|
||||
union Ctx;
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue