aboutsummaryrefslogtreecommitdiff
path: root/src/nix-env
diff options
context:
space:
mode:
Diffstat (limited to 'src/nix-env')
-rw-r--r--src/nix-env/nix-env.cc12
1 files changed, 10 insertions, 2 deletions
diff --git a/src/nix-env/nix-env.cc b/src/nix-env/nix-env.cc
index f64075567..b2d789324 100644
--- a/src/nix-env/nix-env.cc
+++ b/src/nix-env/nix-env.cc
@@ -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);
for (auto & i : elems) {
@@ -919,6 +919,14 @@ static void queryJSON(Globals & globals, vector<DrvInfo> & elems)
pkgObj.attr("version", drvName.version);
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");
StringSet metaNames = i.queryMetaNames();
for (auto & j : metaNames) {
@@ -1035,7 +1043,7 @@ static void opQuery(Globals & globals, Strings opFlags, Strings opArgs)
/* Print the desired columns, or XML output. */
if (jsonOutput) {
- queryJSON(globals, elems);
+ queryJSON(globals, elems, printOutPath);
return;
}