* 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