From e547bd0dc419cdbe2e8d8440224b252f723590ab Mon Sep 17 00:00:00 2001 From: John Ericson Date: Mon, 19 Mar 2018 18:03:46 -0400 Subject: lib: Factor in tiny bit of `meta.platform` checking I need it in stdenv and release-lib, so that seems motivation enough. --- lib/meta.nix | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) (limited to 'lib/meta.nix') diff --git a/lib/meta.nix b/lib/meta.nix index 07b1710fff7..199030c103a 100644 --- a/lib/meta.nix +++ b/lib/meta.nix @@ -67,4 +67,23 @@ rec { */ hiPrioSet = set: mapDerivationAttrset hiPrio set; + + /* Check to see if a platform is matched by the given `meta.platforms` + element. + + A `meta.platform` pattern is either + + 1. (legacy) a system string. + + 2. (modern) a pattern for the platform `parsed` field. + + We can inject these into a patten for the whole of a structured platform, + and then match that. + */ + platformMatch = platform: elem: let + pattern = + if builtins.isString elem + then { system = elem; } + else { parsed = elem; }; + in lib.matchAttrs pattern platform; } -- cgit v1.2.3