mirror of
https://github.com/NixOS/nix.git
synced 2025-11-26 20:20:58 +01:00
path-info: print correct path when using nix path-info --store file://... --all --json
When querying all paths in a binary cache store, the path's representation is `<hash>-x` (where `x` is the value of `MissingName`) because the .narinfo filenames only contain the hash. Beforecc46ea1630this worked correctly, because the entire path info was read and the path from this representation was printed, i.e. in the form `<hash>-<name>`. Since then however, the direct result from `queryAllValidPaths()` was used as `path`. Added a regression test to make sure the behavior remains correct. (cherry picked from commitc80cd6bb06)
This commit is contained in:
parent
b433176028
commit
cb7beb05cd
2 changed files with 15 additions and 1 deletions
|
|
@ -43,10 +43,16 @@ static json pathInfoToJSON(
|
|||
|
||||
for (auto & storePath : storePaths) {
|
||||
json jsonObject;
|
||||
auto printedStorePath = store.printStorePath(storePath);
|
||||
|
||||
try {
|
||||
auto info = store.queryPathInfo(storePath);
|
||||
|
||||
// `storePath` has the representation `<hash>-x` rather than
|
||||
// `<hash>-<name>` in case of binary-cache stores & `--all` because we don't
|
||||
// know the name yet until we've read the NAR info.
|
||||
printedStorePath = store.printStorePath(info->path);
|
||||
|
||||
jsonObject = info->toJSON(store, true, HashFormat::SRI);
|
||||
|
||||
if (showClosureSize) {
|
||||
|
|
@ -74,7 +80,7 @@ static json pathInfoToJSON(
|
|||
jsonObject = nullptr;
|
||||
}
|
||||
|
||||
jsonAllObjects[store.printStorePath(storePath)] = std::move(jsonObject);
|
||||
jsonAllObjects[printedStorePath] = std::move(jsonObject);
|
||||
}
|
||||
return jsonAllObjects;
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue