
It now only checks that each derivation's drvPath attribute evaluates. Previously it checked everything (via toXML) but that causes derivations with dubious passthru attribute to fail (see commit 70fee5da112b8a0093d59ac16cdead4d0a72f357).
25 lines
847 B
Nix
25 lines
847 B
Nix
# Evaluate `release.nix' like Hydra would. Too bad nix-instantiate
|
||
# can't to do this.
|
||
|
||
with import ../../pkgs/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
|