From b1ca8517ee54b89c24c77af3b9408066cee57d74 Mon Sep 17 00:00:00 2001 From: Jan Malakhovski Date: Mon, 25 Dec 2017 18:06:49 +0000 Subject: lib: generalize `addPassthru` to `extendDerivation` --- lib/customisation.nix | 17 +++++++++++++---- 1 file changed, 13 insertions(+), 4 deletions(-) (limited to 'lib/customisation.nix') diff --git a/lib/customisation.nix b/lib/customisation.nix index 483ef6fd4866..84f7783a6aa7 100644 --- a/lib/customisation.nix +++ b/lib/customisation.nix @@ -131,8 +131,8 @@ rec { /* Add attributes to each output of a derivation without changing - the derivation itself. */ - addPassthru = drv: passthru: + the derivation itself and check a given condition when evaluating. */ + extendDerivation = condition: passthru: drv: let outputs = drv.outputs or [ "out" ]; @@ -142,13 +142,22 @@ rec { outputToAttrListElement = outputName: { name = outputName; value = commonAttrs // { - inherit (drv.${outputName}) outPath drvPath type outputName; + inherit (drv.${outputName}) type outputName; + drvPath = assert condition; drv.${outputName}.drvPath; + outPath = assert condition; drv.${outputName}.outPath; }; }; outputsList = map outputToAttrListElement outputs; - in commonAttrs // { outputUnspecified = true; }; + in commonAttrs // { + outputUnspecified = true; + drvPath = assert condition; drv.drvPath; + outPath = assert condition; drv.outPath; + }; + /* Add attributes to each output of a derivation without changing + the derivation itself. */ + addPassthru = drv: passthru: extendDerivation true passthru drv; /* Strip a derivation of all non-essential attributes, returning only those needed by hydra-eval-jobs. Also strictly evaluate the -- cgit 1.4.1