Commit 2af00a27 authored by canterburym's avatar canterburym
Browse files

Adding script

parent 4713f71c
Loading
Loading
Loading
Loading
Loading

testing/oids.py

0 → 100644
+51 −0
Original line number Diff line number Diff line
from subprocess import run
from regex import compile

import csv

oid_reg = compile(r"{(.*)}")
part_reg = compile(r"\((\d*)\)")

def parse_oid(txt):
    oid_match = oid_reg.findall(txt)[0]
    oid_parts = str(oid_match).replace("\n","").strip().split(" ")
    ret = []
    for part in oid_parts:
        arc_name = part.split("(")[0]
        arc_num = int(part_reg.findall(part)[0])
        ret.append((arc_name, arc_num))
    return oid_match, ret

def oid_as_numeric(oid_parts):
    return ".".join(str(x[1]) for x in oid_parts)

tag_result = run(["git", "tag"], capture_output=True, text = True)
tags = [t for t in tag_result.stdout.splitlines() if t.startswith('spec/33128')]

rows = []
for tag in tags:
    print(tag)
    version = tag.split("/")[-1]
    version_parts = version.split(".")
    release = version_parts[0]
    ver_maj = version_parts[1]
    ver_min = version_parts[2]

    asn_result = run(["git", "show", f"{tag}:33128/r{release}/TS33128Payloads.asn"], capture_output=True, text=True)
    asn = asn_result.stdout

    oid, oid_parts = parse_oid(asn)
    rows.append({
        'tag' : tag,
        'release' : int(release),
        'ver_maj' : int(ver_maj),
        'ver_min' : int(ver_min),
        'oid_num' : oid_as_numeric(oid_parts),
        'oid_str' : oid
    })

sorted_rows = sorted(rows, key = lambda x: (x['release'], x['ver_maj'], x['ver_min']))

with open("oids.csv", "w", newline='') as csvfile:
    cw = csv.DictWriter(csvfile, fieldnames=['tag', 'release', 'ver_maj', 'ver_min', 'oid_num', 'oid_str'])
    cw.writerows(sorted_rows)
 No newline at end of file