aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorEelco Dolstra <eelco.dolstra@logicblox.com>2014-06-02 17:58:43 +0200
committerEelco Dolstra <eelco.dolstra@logicblox.com>2014-06-02 17:58:43 +0200
commit3c6b8a521561f5341652ffe37b869d5ab457227b (patch)
treeb646f7227bb180564e411734e07c569545e1d41e
parentceed8192848760430c9c23659f9cb979aad1f9c3 (diff)
nix-env -qa --json: Generate valid JSON even if there are invalid meta attrs
-rw-r--r--src/nix-env/nix-env.cc5
1 files changed, 3 insertions, 2 deletions
diff --git a/src/nix-env/nix-env.cc b/src/nix-env/nix-env.cc
index 2d38f2aea..05f6aa354 100644
--- a/src/nix-env/nix-env.cc
+++ b/src/nix-env/nix-env.cc
@@ -882,9 +882,10 @@ static void queryJSON(Globals & globals, vector<DrvInfo> & elems)
foreach (StringSet::iterator, j, metaNames) {
metaObj.attr(*j);
Value * v = i->queryMeta(*j);
- if (!v)
+ if (!v) {
printMsg(lvlError, format("derivation `%1%' has invalid meta attribute `%2%'") % i->name % *j);
- else {
+ cout << "null";
+ } else {
PathSet context;
printValueAsJSON(globals.state, true, *v, cout, context);
}