Files
nuki_hub/resources/config_version.py

40 lines
1.2 KiB
Python

import re, json, argparse
from urllib.request import urlopen
parser = argparse.ArgumentParser()
parser.add_argument('ota_type', type=str)
args = parser.parse_args()
regex = r"\#define NUKI_HUB_VERSION \"(.*)\""
version = "unknown"
with open('src/Config.h', 'r') as file:
file_content = file.read()
matches = re.finditer(regex, file_content, re.MULTILINE)
for matchNum, match in enumerate(matches, start=1):
for groupNum in range(0, len(match.groups())):
groupNum = groupNum + 1
version = match.group(groupNum)
data = ""
number = 1
response = urlopen("https://raw.githubusercontent.com/technyon/nuki_hub/binary/ota/manifest.json")
data = json.loads(response.read().decode("utf-8"))
if ("number" not in data[args.ota_type]):
number = 1
elif (data[args.ota_type]['version'] == version):
number = data[args.ota_type]['number'] + 1
else:
number = 1
content_new = ""
with open ('src/Config.h', 'r' ) as readfile:
file_content = readfile.read()
content_new = re.sub(regex, "#define NUKI_HUB_VERSION \"" + str(version) + "-" + args.ota_type + str(number) + "\"", file_content, flags = re.M)
with open('src/Config.h', 'w') as writefile:
writefile.write(content_new)