29 lines
1.1 KiB
Python
29 lines
1.1 KiB
Python
"""
|
|
This script is solely used when generating builds. It generates a version number automatically using
|
|
git tags as it's basis. Whenever a build is created, run this file beforehand and it should replace
|
|
the old version number with the new one in VERSION.YML
|
|
"""
|
|
|
|
import yaml
|
|
import subprocess
|
|
import os
|
|
|
|
def rreplace(s, old, new, occurrence):
|
|
li = s.rsplit(old, occurrence)
|
|
return new.join(li)
|
|
|
|
|
|
with open("version.yml", 'r+') as file:
|
|
data = yaml.load(file, Loader=yaml.SafeLoader)
|
|
file.seek(0)
|
|
file.truncate()
|
|
# todo: run Version() on the tag to ensure that it's of proper formatting - fail a test if not and prevent building
|
|
# python's versioning spec doesn't handle the same format git describe outputs, so convert it.
|
|
label = os.environ["PYFA_VERSION"].split('-') if "PYFA_VERSION" in os.environ else subprocess.check_output(["git", "describe", "--tags"]).strip().decode().split('-')
|
|
label = '-'.join(label[:-2])+'+'+'-'.join(label[-2:]) if len(label) > 1 else label[0]
|
|
label = rreplace(label, '+', '-', label.count('+') - 1)
|
|
print(label)
|
|
data['version'] = label
|
|
yaml.dump(data, file, default_flow_style=False)
|
|
|