diff options
author | Graham Christensen <graham@grahamc.com> | 2017-12-12 18:06:55 -0500 |
---|---|---|
committer | Graham Christensen <graham@grahamc.com> | 2017-12-12 18:08:11 -0500 |
commit | f33a513d2b1f07da28549ffb7067f913bb3e302a (patch) | |
tree | a0a1c2e6660ad10647149b93c6c7ed4ef72d7498 | |
parent | 3a110ea3f96db56012f7f2707e842593a7d7c5b8 (diff) | |
download | nixlib-f33a513d2b1f07da28549ffb7067f913bb3e302a.tar nixlib-f33a513d2b1f07da28549ffb7067f913bb3e302a.tar.gz nixlib-f33a513d2b1f07da28549ffb7067f913bb3e302a.tar.bz2 nixlib-f33a513d2b1f07da28549ffb7067f913bb3e302a.tar.lz nixlib-f33a513d2b1f07da28549ffb7067f913bb3e302a.tar.xz nixlib-f33a513d2b1f07da28549ffb7067f913bb3e302a.tar.zst nixlib-f33a513d2b1f07da28549ffb7067f913bb3e302a.zip |
stdenv: allow specifying a eval issuee handler
-rw-r--r-- | pkgs/stdenv/generic/check-meta.nix | 17 |
1 files changed, 12 insertions, 5 deletions
diff --git a/pkgs/stdenv/generic/check-meta.nix b/pkgs/stdenv/generic/check-meta.nix index 7c2206473688..3fe12d0826d9 100644 --- a/pkgs/stdenv/generic/check-meta.nix +++ b/pkgs/stdenv/generic/check-meta.nix @@ -125,11 +125,18 @@ let ''; - throwEvalHelp = { reason , errormsg ? "" }: - (if reason != "unknown-meta" then throw else (x : builtins.trace x true)) ('' - Package ‘${attrs.name or "«name-missing»"}’ in ${pos_str} ${errormsg}, refusing to evaluate. + handleEvalIssue = { reason , errormsg ? "" }: + let + msg = '' + Package ‘${attrs.name or "«name-missing»"}’ in ${pos_str} ${errormsg}, refusing to evaluate. + + '' + (builtins.getAttr reason remediation) attrs; + + handler = if config ? "handleEvalIssue" + then config.handleEvalIssue reason + else throw; + in handler msg; - '' + ((builtins.getAttr reason remediation) attrs)); metaTypes = with lib.types; rec { # These keys are documented @@ -192,7 +199,7 @@ let validityCondition = let v = checkValidity attrs; in if !v.valid - then throwEvalHelp (removeAttrs v ["valid"]) + then handleEvalIssue (removeAttrs v ["valid"]) else true; in |