mirror of
git://git.yoctoproject.org/poky.git
synced 2025-07-19 12:59:02 +02:00
bitbake: utils: add is_semver function
This function checks if a string is a semantic version: https://semver.org/spec/v2.0.0.html The npm fetcher needs this function to validate its version parameter. (Bitbake rev: 61ac4e825fa7afbb76282030586abc9ee4ac215c) Signed-off-by: Jean-Marie LEMETAYER <jean-marie.lemetayer@savoirfairelinux.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This commit is contained in:
parent
bdcd68f092
commit
bd184ea6ff
|
@ -1611,3 +1611,29 @@ class LogCatcher(logging.Handler):
|
|||
self.messages.append(bb.build.logformatter.format(record))
|
||||
def contains(self, message):
|
||||
return (message in self.messages)
|
||||
|
||||
def is_semver(version):
|
||||
"""
|
||||
Is the version string following the semver semantic?
|
||||
|
||||
https://semver.org/spec/v2.0.0.html
|
||||
"""
|
||||
regex = re.compile(
|
||||
r"""
|
||||
^
|
||||
(0|[1-9]\d*)\.(0|[1-9]\d*)\.(0|[1-9]\d*)
|
||||
(?:-(
|
||||
(?:0|[1-9]\d*|\d*[a-zA-Z-][0-9a-zA-Z-]*)
|
||||
(?:\.(?:0|[1-9]\d*|\d*[a-zA-Z-][0-9a-zA-Z-]*))*
|
||||
))?
|
||||
(?:\+(
|
||||
[0-9a-zA-Z-]+
|
||||
(?:\.[0-9a-zA-Z-]+)*
|
||||
))?
|
||||
$
|
||||
""", re.VERBOSE)
|
||||
|
||||
if regex.match(version) is None:
|
||||
return False
|
||||
|
||||
return True
|
||||
|
|
Loading…
Reference in New Issue
Block a user