mirror of
https://github.com/NixOS/nix
synced 2025-06-27 08:31:16 +02:00
* Keep track of the source positions of attributes.
This commit is contained in:
parent
84ce7ac76f
commit
e2d5e40f4f
8 changed files with 117 additions and 86 deletions
|
@ -62,19 +62,19 @@ bool createUserEnv(EvalState & state, DrvInfos & elems,
|
|||
manifest.list.elems[n++] = &v;
|
||||
state.mkAttrs(v);
|
||||
|
||||
mkString((*v.attrs)[state.sType], "derivation");
|
||||
mkString((*v.attrs)[state.sName], i->name);
|
||||
mkString((*v.attrs)[state.sSystem], i->system);
|
||||
mkString((*v.attrs)[state.sOutPath], i->queryOutPath(state));
|
||||
mkString((*v.attrs)[state.sType].value, "derivation");
|
||||
mkString((*v.attrs)[state.sName].value, i->name);
|
||||
mkString((*v.attrs)[state.sSystem].value, i->system);
|
||||
mkString((*v.attrs)[state.sOutPath].value, i->queryOutPath(state));
|
||||
if (drvPath != "")
|
||||
mkString((*v.attrs)[state.sDrvPath], i->queryDrvPath(state));
|
||||
mkString((*v.attrs)[state.sDrvPath].value, i->queryDrvPath(state));
|
||||
|
||||
state.mkAttrs((*v.attrs)[state.sMeta]);
|
||||
state.mkAttrs((*v.attrs)[state.sMeta].value);
|
||||
|
||||
MetaInfo meta = i->queryMetaInfo(state);
|
||||
|
||||
foreach (MetaInfo::const_iterator, j, meta) {
|
||||
Value & v2((*(*v.attrs)[state.sMeta].attrs)[state.symbols.create(j->first)]);
|
||||
Value & v2((*(*v.attrs)[state.sMeta].value.attrs)[state.symbols.create(j->first)].value);
|
||||
switch (j->second.type) {
|
||||
case MetaValue::tpInt: mkInt(v2, j->second.intValue); break;
|
||||
case MetaValue::tpString: mkString(v2, j->second.stringValue); break;
|
||||
|
@ -116,10 +116,10 @@ bool createUserEnv(EvalState & state, DrvInfos & elems,
|
|||
builder with the manifest as argument. */
|
||||
Value args, topLevel;
|
||||
state.mkAttrs(args);
|
||||
mkString((*args.attrs)[state.sSystem], thisSystem);
|
||||
mkString((*args.attrs)[state.symbols.create("manifest")],
|
||||
mkString((*args.attrs)[state.sSystem].value, thisSystem);
|
||||
mkString((*args.attrs)[state.symbols.create("manifest")].value,
|
||||
manifestFile, singleton<PathSet>(manifestFile));
|
||||
(*args.attrs)[state.symbols.create("derivations")] = manifest;
|
||||
(*args.attrs)[state.symbols.create("derivations")].value = manifest;
|
||||
mkApp(topLevel, envBuilder, args);
|
||||
|
||||
/* Evaluate it. */
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue