import os from datetime import date import json def readVersion(path, infile): f = open(path + infile, "r") lines = f.readlines() f.close() today = date.today() search = ["_MAJOR", "_MINOR", "_PATCH"] version = today.strftime("%y%m%d") + "_ahoy_" versionnumber = ""# "ahoy_v" for line in lines: if(line.find("VERSION_") != -1): for s in search: p = line.find(s) if(p != -1): version += line[p+13:].rstrip() + "." versionnumber += line[p+13:].rstrip() + "." return [versionnumber[:-1], version[:-1]] def buildManifest(path, infile, outfile): version = readVersion(path, infile) sha = os.getenv("SHA",default="sha") data = {} data["name"] = "AhoyDTU - Development" data["version"] = version[0] data["new_install_prompt_erase"] = 1 data["builds"] = [] esp32 = {} esp32["chipFamily"] = "ESP32" esp32["parts"] = [] esp32["parts"].append({"path": "ESP32/bootloader.bin", "offset": 4096}) esp32["parts"].append({"path": "ESP32/partitions.bin", "offset": 32768}) esp32["parts"].append({"path": "ESP32/ota.bin", "offset": 57344}) esp32["parts"].append({"path": "ESP32/" + version[1] + "_" + sha + "_esp32-wroom32.bin", "offset": 65536}) data["builds"].append(esp32) esp32s2 = {} esp32s2["chipFamily"] = "ESP32-S2" esp32s2["parts"] = [] esp32s2["parts"].append({"path": "ESP32-S2/bootloader.bin", "offset": 4096}) esp32s2["parts"].append({"path": "ESP32-S2/partitions.bin", "offset": 32768}) esp32s2["parts"].append({"path": "ESP32-S2/ota.bin", "offset": 57344}) esp32s2["parts"].append({"path": "ESP32-S2/" + version[1] + "_" + sha + "_esp32-s2-mini.bin", "offset": 65536}) data["builds"].append(esp32s2) esp32s3 = {} esp32s3["chipFamily"] = "ESP32-S3" esp32s3["parts"] = [] esp32s3["parts"].append({"path": "ESP32/bootloader.bin", "offset": 4096}) esp32s3["parts"].append({"path": "ESP32/partitions.bin", "offset": 32768}) esp32s3["parts"].append({"path": "ESP32/ota.bin", "offset": 57344}) esp32s3["parts"].append({"path": "ESP32-S3/" + version[1] + "_" + sha + "_opendtufusion.bin", "offset": 65536}) data["builds"].append(esp32s3) esp8266 = {} esp8266["chipFamily"] = "ESP8266" esp8266["parts"] = [] esp8266["parts"].append({"path": "ESP8266/" + version[1] + "_" + sha + "_esp8266.bin", "offset": 0}) data["builds"].append(esp8266) jsonString = json.dumps(data, indent=2) fp = open(path + "../firmware/" + outfile, "w") fp.write(jsonString) fp.close() buildManifest("", "defines.h", "manifest.json")