1
0
Fork 0
mirror of https://github.com/NixOS/nix synced 2025-07-02 21:51:50 +02:00

exportReferencesGraph: Export more complete info in JSON format

This writes info about every path in the closure in the same format as
‘nix path-info --json’. Thus it also includes NAR hashes and sizes.

Example:

  [
    {
      "path": "/nix/store/10h6li26i7g6z3mdpvra09yyf10mmzdr-hello-2.10",
      "narHash": "sha256:0ckdc4z20kkmpqdilx0wl6cricxv90lh85xpv2qljppcmz6vzcxl",
      "narSize": 197648,
      "references": [
        "/nix/store/10h6li26i7g6z3mdpvra09yyf10mmzdr-hello-2.10",
        "/nix/store/27binbdy296qvjycdgr1535v8872vz3z-glibc-2.24"
      ],
      "closureSize": 20939776
    },
    {
      "path": "/nix/store/27binbdy296qvjycdgr1535v8872vz3z-glibc-2.24",
      "narHash": "sha256:1nfn3m3p98y1c0kd0brp80dn9n5mycwgrk183j17rajya0h7gax3",
      "narSize": 20742128,
      "references": [
        "/nix/store/27binbdy296qvjycdgr1535v8872vz3z-glibc-2.24"
      ],
      "closureSize": 20742128
    }
  ]

Fixes #1134.
This commit is contained in:
Eelco Dolstra 2017-01-26 20:36:20 +01:00
parent 6de33a9c67
commit c2b0d8749f
No known key found for this signature in database
GPG key ID: 8170B4726D7198DE
4 changed files with 90 additions and 50 deletions

View file

@ -10,6 +10,7 @@
#include "builtins.hh"
#include "finally.hh"
#include "compression.hh"
#include "json.hh"
#include <algorithm>
#include <iostream>
@ -2273,9 +2274,18 @@ void DerivationGoal::doExportReferencesGraph()
}
}
/* Write closure info to `fileName'. */
/* Write closure info to <fileName>. */
writeFile(tmpDir + "/" + fileName,
worker.store.makeValidityRegistration(paths, false, false));
/* Write a more comprehensive JSON serialisation to
<fileName>.json. */
std::ostringstream str;
{
JSONPlaceholder jsonRoot(str, true);
worker.store.pathInfoToJSON(jsonRoot, paths, false, true);
}
writeFile(tmpDir + "/" + fileName + ".json", str.str());
}
}