Merge pull request #5878 from fzakaria/faridzakaria/json-outputs

Add outputs to JSON query
This commit is contained in:
Eelco Dolstra 2022-01-06 22:33:11 +01:00 committed by GitHub
commit 5c7d3b351f
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23

View file

@ -907,7 +907,7 @@ static VersionDiff compareVersionAgainstSet(
} }
static void queryJSON(Globals & globals, vector<DrvInfo> & elems) static void queryJSON(Globals & globals, vector<DrvInfo> & elems, bool printOutPath)
{ {
JSONObject topObj(cout, true); JSONObject topObj(cout, true);
for (auto & i : elems) { for (auto & i : elems) {
@ -919,6 +919,14 @@ static void queryJSON(Globals & globals, vector<DrvInfo> & elems)
pkgObj.attr("version", drvName.version); pkgObj.attr("version", drvName.version);
pkgObj.attr("system", i.querySystem()); pkgObj.attr("system", i.querySystem());
if (printOutPath) {
DrvInfo::Outputs outputs = i.queryOutputs();
JSONObject outputObj = pkgObj.object("outputs");
for (auto & j : outputs) {
outputObj.attr(j.first, j.second);
}
}
JSONObject metaObj = pkgObj.object("meta"); JSONObject metaObj = pkgObj.object("meta");
StringSet metaNames = i.queryMetaNames(); StringSet metaNames = i.queryMetaNames();
for (auto & j : metaNames) { for (auto & j : metaNames) {
@ -1035,7 +1043,7 @@ static void opQuery(Globals & globals, Strings opFlags, Strings opArgs)
/* Print the desired columns, or XML output. */ /* Print the desired columns, or XML output. */
if (jsonOutput) { if (jsonOutput) {
queryJSON(globals, elems); queryJSON(globals, elems, printOutPath);
return; return;
} }