Make queryJSON not bail immediately on an assertion or error

This commit is contained in:
Farid Zakaria 2022-01-15 19:36:07 -08:00
parent 6ff2ce8caf
commit 61f02f7f20

View file

@ -911,6 +911,9 @@ static void queryJSON(Globals & globals, vector<DrvInfo> & elems, bool printOutP
{ {
JSONObject topObj(cout, true); JSONObject topObj(cout, true);
for (auto & i : elems) { for (auto & i : elems) {
try {
if (i.hasFailed()) continue;
JSONObject pkgObj = topObj.object(i.attrPath); JSONObject pkgObj = topObj.object(i.attrPath);
auto drvName = DrvName(i.queryName()); auto drvName = DrvName(i.queryName());
@ -942,6 +945,11 @@ static void queryJSON(Globals & globals, vector<DrvInfo> & elems, bool printOutP
} }
} }
} }
} catch (AssertionError & e) {
printMsg(lvlTalkative, "skipping derivation named '%1%' which gives an assertion failure", i.queryName());
} catch (Error & e) {
printMsg(lvlError, "skipping derivation named '%1%' which gives an error '%2%'", i.queryName(), e.msg());
}
} }
} }