about summary refs log tree commit diff
path: root/pkgs/stdenv/generic/check-meta.nix
diff options
context:
space:
mode:
authorJohn Ericson <John.Ericson@Obsidian.Systems>2018-03-27 11:42:51 -0400
committerJohn Ericson <John.Ericson@Obsidian.Systems>2018-03-27 11:59:59 -0400
commitf8ed783f4f0f2239f0c084fe1700529304376697 (patch)
treecd132fc0a5ab9e4f24d9f8916efb2258aff06f7f /pkgs/stdenv/generic/check-meta.nix
parent26e8d58cb545004acb7cbd00db81a402923a2445 (diff)
downloadnixlib-f8ed783f4f0f2239f0c084fe1700529304376697.tar
nixlib-f8ed783f4f0f2239f0c084fe1700529304376697.tar.gz
nixlib-f8ed783f4f0f2239f0c084fe1700529304376697.tar.bz2
nixlib-f8ed783f4f0f2239f0c084fe1700529304376697.tar.lz
nixlib-f8ed783f4f0f2239f0c084fe1700529304376697.tar.xz
nixlib-f8ed783f4f0f2239f0c084fe1700529304376697.tar.zst
nixlib-f8ed783f4f0f2239f0c084fe1700529304376697.zip
meta: Simplify platform check logic
Code golf or readability, you decide
Diffstat (limited to 'pkgs/stdenv/generic/check-meta.nix')
-rw-r--r--pkgs/stdenv/generic/check-meta.nix7
1 files 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.