mirror of
https://git.yoctoproject.org/poky
synced 2026-05-31 12:49:46 +00: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:
committed by
Richard Purdie
parent
bdcd68f092
commit
bd184ea6ff
@@ -1611,3 +1611,29 @@ class LogCatcher(logging.Handler):
|
|||||||
self.messages.append(bb.build.logformatter.format(record))
|
self.messages.append(bb.build.logformatter.format(record))
|
||||||
def contains(self, message):
|
def contains(self, message):
|
||||||
return (message in self.messages)
|
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
|
||||||
|
|||||||
Reference in New Issue
Block a user