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 | ||
