mirror of
https://github.com/deskflow/deskflow.git
synced 2026-07-07 21:07:23 +08:00
* SYNERGY-400 Generate build number and create release with tag * SYNERGY-400 Changes for Azure Piplines * Update ChangeLog * SYNERGY-400 Enable not manual build * SYNERGY-400 Removed extra space * SYNERGY-400 Removed extra bracket * SYNERGY-400 Correct conditions * SYNERGY-400 Fix additional condition * SYNERGY-400 Correct to run checks * SYNERGY-400 Fix windows and build number * SYNERGY-400 Fix for old python * SYNERGY-400 Set python version for linux * SYNERGY-400 Fix linux compilation * SYNERGY-400 Fix getting last version for old git * SYNERGY-400 Check python version * SYNERGY-400 Update image for centos8
104 lines
3.0 KiB
Python
104 lines
3.0 KiB
Python
import subprocess
|
|
|
|
class VersionPart:
|
|
|
|
def __init__(self, part = ''):
|
|
self.prefix = ''
|
|
self.suffix = ''
|
|
self.number = 0
|
|
|
|
if part:
|
|
self.__parsePreffix(part)
|
|
self.__parseNumber(part)
|
|
self.__parseSuffix(part)
|
|
|
|
def __parsePreffix(self, part):
|
|
if not part[0].isdigit():
|
|
for i in part:
|
|
if not i.isdigit():
|
|
self.prefix += i
|
|
else:
|
|
break
|
|
|
|
def __parseNumber(self, part):
|
|
start = len(self.prefix)
|
|
end = part.find('-')
|
|
if end > 0:
|
|
self.number = int(part[start:end])
|
|
else:
|
|
self.number = int(part[start:])
|
|
|
|
def __parseSuffix(self, part):
|
|
items = part.split('-')
|
|
if len(items) == 2:
|
|
self.suffix = '-' + items[1]
|
|
|
|
def __str__(self):
|
|
return self.prefix + str(self.number) + self.suffix
|
|
|
|
class Version:
|
|
|
|
def __init__(self, version):
|
|
versionParts = version.split('.')
|
|
|
|
if len(versionParts) == 3:
|
|
self.major = VersionPart(versionParts[0])
|
|
self.minor = VersionPart(versionParts[1])
|
|
self.build = VersionPart(versionParts[2])
|
|
self.patch = VersionPart()
|
|
self.patch.number = self.build.number
|
|
elif len(versionParts) == 4:
|
|
self.major = VersionPart(versionParts[0])
|
|
self.minor = VersionPart(versionParts[1])
|
|
self.patch = VersionPart(versionParts[2])
|
|
self.build = VersionPart(versionParts[3])
|
|
else:
|
|
print('ERROR: Wrong version number')
|
|
|
|
def __str__(self):
|
|
result = str(self.major) + '.'
|
|
result += str(self.minor) + '.'
|
|
result += str(self.patch) + '.'
|
|
result += str(self.build)
|
|
return result
|
|
|
|
class VersionFile:
|
|
def __init__(self, file):
|
|
self.file = file
|
|
|
|
def setOption(self, name, value):
|
|
fp = open(self.file, 'rt+')
|
|
content = ''
|
|
for line in fp:
|
|
print(line)
|
|
if line.find(name) != -1:
|
|
line = 'set ('+ name + ' ' + value + ')'
|
|
content += line
|
|
fp.write(content)
|
|
fp.close()
|
|
|
|
|
|
def getVesionFromGit():
|
|
try:
|
|
taggedRevision = subprocess.check_output(('git rev-list --tags --max-count=1').split(), universal_newlines=True)
|
|
cmd = ('git describe --tags ' + taggedRevision).split()
|
|
versions = subprocess.check_output(cmd, universal_newlines=True).split()
|
|
print('INFO: Version '+ versions[0] + ' has been read from git')
|
|
return versions[0]
|
|
except subprocess.CalledProcessError:
|
|
print('ERROR: Unable to get version from git')
|
|
exit(1)
|
|
|
|
def updateVersionFile(number):
|
|
fp = open('cmake/Version.cmake')
|
|
content = fp.read()
|
|
fp.close()
|
|
|
|
fp = open('cmake/Version.cmake', 'wt')
|
|
fp.write(content.replace('set (SYNERGY_VERSION_BUILD 1)', 'set (SYNERGY_VERSION_BUILD ' + str(number) + ')'))
|
|
fp.close()
|
|
|
|
if __name__ == '__main__':
|
|
version = Version(getVesionFromGit())
|
|
updateVersionFile(version.build.number)
|
|
print('INFO: Generate build number is: <' + str(version) + '>') |