Importing derivations: Add name attribute to make a valid drv

This commit is contained in:
Shea Levy 2015-07-23 09:48:03 -04:00 committed by Eelco Dolstra
parent 1ed55234d9
commit 39e27a04b8
2 changed files with 5 additions and 3 deletions

View file

@ -1,10 +1,10 @@
attrs @ { drvPath, outputs, ... }:
attrs @ { drvPath, outputs, name, ... }:
let
commonAttrs = (builtins.listToAttrs outputsList) //
{ all = map (x: x.value) outputsList;
inherit drvPath;
inherit drvPath name;
type = "derivation";
};

View file

@ -86,9 +86,11 @@ static void prim_scopedImport(EvalState & state, const Pos & pos, Value * * args
if (isStorePath(path) && store->isValidPath(path) && isDerivation(path)) {
Derivation drv = readDerivation(path);
Value & w = *state.allocValue();
state.mkAttrs(w, 2 + drv.outputs.size());
state.mkAttrs(w, 3 + drv.outputs.size());
Value * v2 = state.allocAttr(w, state.sDrvPath);
mkString(*v2, path, singleton<PathSet>("=" + path));
v2 = state.allocAttr(w, state.sName);
mkString(*v2, drv.env["name"]);
Value * outputsVal =
state.allocAttr(w, state.symbols.create("outputs"));
state.mkList(*outputsVal, drv.outputs.size());