mirror of
https://github.com/NixOS/nix.git
synced 2025-11-11 13:06:01 +01:00
nix-env --query: fix --json ignoring --drv-path
```json
{
"AMB-plugins": {
"drvPath": "/nix/store/l99cb7h2hy8dg005arsjbd9kx0w05d3h-AMB-plugins-0.8.1.drv",
"name": "AMB-plugins-0.8.1",
"outputName": "out",
"outputs": {
"out": null
},
"pname": "AMB-plugins",
"system": "x86_64-linux",
"version": "0.8.1"
},
"ArchiSteamFarm": {
"drvPath": "/nix/store/nhplgyjj34fz6hjmnyih25gxscfh8s7b-ArchiSteamFarm-5.4.12.5.drv",
"name": "ArchiSteamFarm-5.4.12.5",
"outputName": "out",
"outputs": {
"out": null
},
"pname": "ArchiSteamFarm",
"system": "x86_64-linux",
"version": "5.4.12.5"
},
...
```
This commit is contained in:
parent
a6e587923c
commit
a903f85f84
3 changed files with 10 additions and 2 deletions
|
|
@ -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;
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue