* Don't generate an empty drvPath attribute in the manifest.

This commit is contained in:
Eelco Dolstra 2006-10-17 10:15:42 +00:00
parent d7efd76394
commit 46b631b6c4

View file

@ -165,19 +165,19 @@ static void createUserEnv(EvalState & state, const DrvInfos & elems,
i != elems.end(); ++i) i != elems.end(); ++i)
{ {
Path drvPath = keepDerivations ? i->queryDrvPath(state) : ""; Path drvPath = keepDerivations ? i->queryDrvPath(state) : "";
ATerm t = makeAttrs(ATmakeList5( ATermList as = ATmakeList4(
makeBind(toATerm("type"), makeBind(toATerm("type"),
makeStr("derivation"), makeNoPos()), makeStr("derivation"), makeNoPos()),
makeBind(toATerm("name"), makeBind(toATerm("name"),
makeStr(i->name), makeNoPos()), makeStr(i->name), makeNoPos()),
makeBind(toATerm("system"), makeBind(toATerm("system"),
makeStr(i->system), makeNoPos()), makeStr(i->system), makeNoPos()),
makeBind(toATerm("drvPath"),
makeStr(drvPath), makeNoPos()),
makeBind(toATerm("outPath"), makeBind(toATerm("outPath"),
makeStr(i->queryOutPath(state)), makeNoPos()) makeStr(i->queryOutPath(state)), makeNoPos()));
)); if (drvPath != "") as = ATinsert(as,
manifest = ATinsert(manifest, t); makeBind(toATerm("drvPath"),
makeStr(drvPath), makeNoPos()));
manifest = ATinsert(manifest, makeAttrs(as));
inputs = ATinsert(inputs, makeStr(i->queryOutPath(state))); inputs = ATinsert(inputs, makeStr(i->queryOutPath(state)));
/* This is only necessary when installing store paths, e.g., /* This is only necessary when installing store paths, e.g.,