haco/update_version.py

30 lines
954 B
Python
Raw Normal View History

2023-08-29 16:01:23 +01:00
import sys
import re
from pathlib import Path
PATH_ROOT = Path(__file__).parent.absolute()
ENCODING = 'UTF-8'
PATTERN_VERSION = r'(?P<major>0|[1-9]\d*)\.(?P<minor>0|[1-9]\d*)\.(?P<patch>0|[1-9]\d*)(?:-(?P<pre>[0-9a-zA-Z-]+(?:\.[0-9a-zA-Z-]+)*))?(?:\+(?P<build>[0-9a-zA-Z-]+(?:\.[0-9a-zA-Z-]+)*))?'
STEMS_MASKS = {
'berry/haco_version.be': r"var\s+VERSION\s*=\s*'({})'",
'ha/addon/config.yaml': r"version:\s+({})"
}
VERSION = sys.argv[1]
def replacer(match):
text_new = match.group(0).replace(match.group(1), VERSION)
return text_new
if __name__ == '__main__':
for stem, mask in STEMS_MASKS.items():
path = PATH_ROOT / stem
text_old = path.read_text(encoding=ENCODING)
pattern = mask.format(PATTERN_VERSION)
replacement = pattern.format(VERSION)
text = re.sub(pattern, replacer, text_old)
path.write_text(text, encoding=ENCODING)
print(f'Wrote versions to file: "{path}"')