2a5098384e
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
70fee5da11
).
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
|