25 lines
		
	
	
		
			842 B
		
	
	
	
		
			Nix
		
	
	
	
	
	
			
		
		
	
	
			25 lines
		
	
	
		
			842 B
		
	
	
	
		
			Nix
		
	
	
	
	
	
| # Evaluate `release.nix' like Hydra would.  Too bad nix-instantiate
 | ||
| # can't to do this.
 | ||
| 
 | ||
| with import ../../lib;
 | ||
| 
 | ||
| let
 | ||
|   trace = if builtins.getEnv "VERBOSE" == "1" then builtins.trace else (x: y: y);
 | ||
| 
 | ||
|   rel = removeAttrs (import ../../pkgs/top-level/release.nix { }) [ "tarball" "unstable" "xbursttools" ];
 | ||
| 
 | ||
|   # Add the ‘recurseForDerivations’ attribute to ensure that
 | ||
|   # nix-instantiate recurses into nested attribute sets.
 | ||
|   recurse = path: attrs:
 | ||
|     if (builtins.tryEval attrs).success then
 | ||
|       if isDerivation attrs
 | ||
|       then
 | ||
|         if (builtins.tryEval attrs.drvPath).success
 | ||
|         then { inherit (attrs) name drvPath; }
 | ||
|         else { failed = true; }
 | ||
|       else { recurseForDerivations = true; } //
 | ||
|            mapAttrs (n: v: let path' = path ++ [n]; in trace path' (recurse path' v)) attrs
 | ||
|     else { };
 | ||
| 
 | ||
| in recurse [] rel
 | 
