diff --git a/update_checker.py b/update_checker.py index ce973c99fc362670ecf71e74319ff1dca52c9bdd..7bea2736b413551e71e3323e14ebb3b457e6ba7b 100755 --- a/update_checker.py +++ b/update_checker.py @@ -38,6 +38,10 @@ def ipv62mac(ipv6): return ":".join(macParts) +class LogRecordParseError(Exception): + def __init__(self, record_line): + self.record_line = record_line + class LogRecord: def __init__(self,record): record = record.replace("%2B","+") @@ -46,9 +50,7 @@ class LogRecord: try: groups = result.groups() except: - print(record) - print("error parsing record") - sys.exit(1) + raise LogRecordParseError(record) self.ipv6 = groups[0] self.date = groups[1] self.branch = groups[2] @@ -94,7 +96,12 @@ if not os.path.isfile(nodesdbFilename): data = json.load(open(nodesdbFilename)) for download in allFirmwareDownloads: - r = LogRecord(download) + try: + r = LogRecord(download) + except LogRecordParseError as e: + print("error parsing line, skipping: {}".format(e.record_line)) + continue + mac = ipv62mac(r.ipv6) if mac in data: