|
I've written the following standalone python script which should address this issue:
import re
|
|
def version(versionString):
|
version_parts = [ x for x in re.match(r'^(\d+)\.(\d+)\.(\d+)-?((?:(rc|alpha)(\d?))?.*)?',
|
versionString).groups() ]
|
print(version_parts)
|
version_extra = version_parts[3] if version_parts[3] else ""
|
if version_parts[4] == 'rc':
|
version_parts[3] = int(version_parts[5]) + -25
|
elif version_parts[4] == 'alpha':
|
if version_parts[5] == '':
|
version_parts[3] = -50
|
else:
|
version_parts[3] = int(version_parts[5]) + -50
|
elif version_parts[3]:
|
version_parts[2] = int(version_parts[2]) + 1
|
version_parts[3] = -100
|
else:
|
version_parts[3] = 0
|
version_parts = [ int(x) for x in version_parts[:4]]
|
return version_parts
|
|
print(version("5.1.0-rc0-325-ga5dd822066"))
|
print(version("5.1.0-alpha-325-ga5dd822066"))
|
print(version("5.1.0-alpha1-325-ga5dd822066"))
|
It produces the following output:
['5', '1', '0', 'rc0-325-ga5dd822066', 'rc', '0']
|
[5, 1, 0, -25]
|
['5', '1', '0', 'alpha-325-ga5dd822066', 'alpha', '']
|
[5, 1, 0, -50]
|
['5', '1', '0', 'alpha1-325-ga5dd822066', 'alpha', '1']
|
[5, 1, 0, -49]
|
|