nix search: Ignore top-level eval errors

$NIX_PATH may contain elements that don't evaluate to an attrset (like
"nixos-config"), so ignore those.
This commit is contained in:
Eelco Dolstra 2017-07-19 16:06:10 +02:00
parent fc3568e263
commit 57a30e101b
No known key found for this signature in database
GPG key ID: 8170B4726D7198DE
2 changed files with 13 additions and 2 deletions

View file

@ -16,6 +16,8 @@ Value * SourceExprCommand::getSourceExpr(EvalState & state)
{
if (vSourceExpr) return vSourceExpr;
auto sToplevel = state.symbols.create("_toplevel");
vSourceExpr = state.allocValue();
if (file != "") {
@ -29,7 +31,9 @@ Value * SourceExprCommand::getSourceExpr(EvalState & state)
auto searchPath = state.getSearchPath();
state.mkAttrs(*vSourceExpr, searchPath.size());
state.mkAttrs(*vSourceExpr, searchPath.size() + 1);
mkBool(*state.allocAttr(*vSourceExpr, sToplevel), true);
std::unordered_set<std::string> seen;