sure that it works as expected when you pass it a derivation. That is, we have to make sure that all build-time dependencies are built, and that they are all in the input closure (otherwise remote builds might fail, for example). This is ensured at instantiation time by adding all derivations and their sources to inputDrvs and inputSrcs.
		
			
				
	
	
		
			29 lines
		
	
	
	
		
			760 B
		
	
	
	
		
			Nix
		
	
	
	
	
	
			
		
		
	
	
			29 lines
		
	
	
	
		
			760 B
		
	
	
	
		
			Nix
		
	
	
	
	
	
| with import ./config.nix;
 | |
| 
 | |
| rec {
 | |
| 
 | |
|   printRefs =
 | |
|     ''
 | |
|       echo $exportReferencesGraph
 | |
|       while read path; do
 | |
|           read drv
 | |
|           read nrRefs
 | |
|           echo "$path has $nrRefs references"
 | |
|           echo "$path" >> $out
 | |
|           for ((n = 0; n < $nrRefs; n++)); do read ref; echo "ref $ref"; test -e "$ref"; done
 | |
|       done < refs
 | |
|     '';
 | |
| 
 | |
|   runtimeGraph = mkDerivation {
 | |
|     name = "dependencies";
 | |
|     builder = builtins.toFile "build-graph-builder" "${printRefs}";
 | |
|     exportReferencesGraph = ["refs" (import ./dependencies.nix)];
 | |
|   };
 | |
| 
 | |
|   buildGraph = mkDerivation {
 | |
|     name = "dependencies";
 | |
|     builder = builtins.toFile "build-graph-builder" "${printRefs}";
 | |
|     exportReferencesGraph = ["refs" (import ./dependencies.nix).drvPath];
 | |
|   };
 | |
| 
 | |
| }
 |