python-utils-r1.eclass: _python_impl_matches for impl-pattern matching
authorMichał Górny <mgorny@gentoo.org>
Wed, 10 May 2017 15:21:35 +0000 (17:21 +0200)
committerMichał Górny <mgorny@gentoo.org>
Tue, 16 May 2017 17:11:32 +0000 (19:11 +0200)
Introduce a _python_impl_matches() function that commonizes the pattern
matching behavior used throughout python-r1 & python-single-r1. Having
a single implementation makes future extensions much easier.

eclass/python-utils-r1.eclass

index 863051337f0b1e12a779834229e36a7d7fbbe810..a9ae22c6d154b61ee8ba0932a1bfd2150d30d3ea 100644 (file)
@@ -149,6 +149,30 @@ _python_set_impls() {
        fi
 }
 
+# @FUNCTION: _python_impl_matches
+# @USAGE: <impl> <pattern>...
+# @INTERNAL
+# @DESCRIPTION:
+# Check whether the specified <impl> matches at least one
+# of the patterns following it. Return 0 if it does, 1 otherwise.
+#
+# <impl> should be in PYTHON_COMPAT form. The patterns are fnmatch-style
+# patterns.
+_python_impl_matches() {
+       [[ ${#} -ge 2 ]] || die "${FUNCNAME}: takes at least 2 parameters"
+
+       local impl=${1} pattern
+       shift
+
+       for pattern; do
+               if [[ ${impl} == ${pattern} ]]; then
+                       return 0
+               fi
+       done
+
+       return 1
+}
+
 # @ECLASS-VARIABLE: PYTHON
 # @DEFAULT_UNSET
 # @DESCRIPTION: