From f8ed783f4f0f2239f0c084fe1700529304376697 Mon Sep 17 00:00:00 2001 From: John Ericson Date: Tue, 27 Mar 2018 11:42:51 -0400 Subject: [PATCH] meta: Simplify platform check logic Code golf or readability, you decide --- pkgs/stdenv/generic/check-meta.nix | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/pkgs/stdenv/generic/check-meta.nix b/pkgs/stdenv/generic/check-meta.nix index 2f4ff62f767e..26522ad6045e 100644 --- a/pkgs/stdenv/generic/check-meta.nix +++ b/pkgs/stdenv/generic/check-meta.nix @@ -174,9 +174,10 @@ let else "key '${k}' is unrecognized; expected one of: \n\t [${lib.concatMapStringsSep ", " (x: "'${x}'") (lib.attrNames metaTypes)}]"; checkMeta = meta: if shouldCheckMeta then lib.remove null (lib.mapAttrsToList checkMetaAttr meta) else []; - checkPlatform = attrs: - (!(attrs ? meta.platforms) || lib.any (lib.meta.platformMatch hostPlatform) attrs.meta.platforms) && - (!(attrs ? meta.badPlatforms && lib.any (lib.meta.platformMatch hostPlatform) attrs.meta.badPlatforms)); + checkPlatform = attrs: let + anyMatch = lib.any (lib.meta.platformMatch hostPlatform); + in anyMatch (attrs.meta.platforms or lib.platforms.all) && + ! anyMatch (attrs.meta.badPlatforms or []); # Check if a derivation is valid, that is whether it passes checks for # e.g brokenness or license.