aboutsummaryrefslogtreecommitdiff
path: root/src/nix-env
diff options
context:
space:
mode:
authoreldritch horrors <pennae@lix.systems>2024-03-04 05:59:15 +0100
committereldritch horrors <pennae@lix.systems>2024-03-04 05:59:15 +0100
commit340a6cf97796ffde4afe7bd7af5619e1cf821c7b (patch)
tree1667322878fd3bfc7b2a514a207ede053208a4b8 /src/nix-env
parent01069d8c467f181e1a13f10486a25473a1a0b386 (diff)
Merge pull request #9257 from Artturin/nixenvjsondrvpath
`nix-env --query`: fix `--json` ignoring `--drv-path` (cherry picked from commit 516e7ddc41f39ff939b5d5b5dc71e590f24890d4) Change-Id: I84b5bccea9d0383e2e74544743b703942e7be547
Diffstat (limited to 'src/nix-env')
-rw-r--r--src/nix-env/nix-env.cc9
1 files changed, 7 insertions, 2 deletions
diff --git a/src/nix-env/nix-env.cc b/src/nix-env/nix-env.cc
index d69d516c3..be5db6b5c 100644
--- a/src/nix-env/nix-env.cc
+++ b/src/nix-env/nix-env.cc
@@ -922,7 +922,7 @@ static VersionDiff compareVersionAgainstSet(
}
-static void queryJSON(Globals & globals, std::vector<DrvInfo> & elems, bool printOutPath, bool printMeta)
+static void queryJSON(Globals & globals, std::vector<DrvInfo> & elems, bool printOutPath, bool printDrvPath, bool printMeta)
{
using nlohmann::json;
json topObj = json::object();
@@ -953,6 +953,11 @@ static void queryJSON(Globals & globals, std::vector<DrvInfo> & elems, bool prin
}
}
+ if (printDrvPath) {
+ auto drvPath = i.queryDrvPath();
+ if (drvPath) pkgObj["drvPath"] = globals.state->store->printStorePath(*drvPath);
+ }
+
if (printMeta) {
json &metaObj = pkgObj["meta"];
metaObj = json::object();
@@ -1079,7 +1084,7 @@ static void opQuery(Globals & globals, Strings opFlags, Strings opArgs)
/* Print the desired columns, or XML output. */
if (jsonOutput) {
- queryJSON(globals, elems, printOutPath, printMeta);
+ queryJSON(globals, elems, printOutPath, printDrvPath, printMeta);
cout << '\n';
return;
}