diff options
-rw-r--r-- | bitbake/lib/bb/utils.py | 26 |
1 files changed, 26 insertions, 0 deletions
diff --git a/bitbake/lib/bb/utils.py b/bitbake/lib/bb/utils.py index 28368f0a60..47805d02cf 100644 --- a/bitbake/lib/bb/utils.py +++ b/bitbake/lib/bb/utils.py | |||
@@ -1611,3 +1611,29 @@ class LogCatcher(logging.Handler): | |||
1611 | self.messages.append(bb.build.logformatter.format(record)) | 1611 | self.messages.append(bb.build.logformatter.format(record)) |
1612 | def contains(self, message): | 1612 | def contains(self, message): |
1613 | return (message in self.messages) | 1613 | return (message in self.messages) |
1614 | |||
1615 | def is_semver(version): | ||
1616 | """ | ||
1617 | Is the version string following the semver semantic? | ||
1618 | |||
1619 | https://semver.org/spec/v2.0.0.html | ||
1620 | """ | ||
1621 | regex = re.compile( | ||
1622 | r""" | ||
1623 | ^ | ||
1624 | (0|[1-9]\d*)\.(0|[1-9]\d*)\.(0|[1-9]\d*) | ||
1625 | (?:-( | ||
1626 | (?:0|[1-9]\d*|\d*[a-zA-Z-][0-9a-zA-Z-]*) | ||
1627 | (?:\.(?:0|[1-9]\d*|\d*[a-zA-Z-][0-9a-zA-Z-]*))* | ||
1628 | ))? | ||
1629 | (?:\+( | ||
1630 | [0-9a-zA-Z-]+ | ||
1631 | (?:\.[0-9a-zA-Z-]+)* | ||
1632 | ))? | ||
1633 | $ | ||
1634 | """, re.VERBOSE) | ||
1635 | |||
1636 | if regex.match(version) is None: | ||
1637 | return False | ||
1638 | |||
1639 | return True | ||