@@ -0,0 +1,1566 @@
+#!/usr/bin/env python3%0A# Run this from within an unzipped directory of build logs from github%0A# to get a CSV file full of firmware sizes.  Super useful to compare sizes%0A# from various builds.%0A# Taken from https://github.com/adafruit/circuitpython/pull/4564#issuecomment-816655101%0Aimport os, re%0A%0Afor fn in os.listdir():%0A    if os.path.isfile(fn) and (%22build-arm %22 in fn or %22build-riscv %22 in fn):%0A        board = re.split(%22%5B()%5D%22, fn)%5B1%5D%0A        if board in (%0A            %22spresense%22,%0A            %22teensy40%22,%0A            %22teensy41%22,%0A            %22feather_m7_1011%22,%0A            %22feather_mimxrt1011%22,%0A            %22feather_mimxrt1062%22,%0A            %22imxrt1010_evk%22,%0A            %22imxrt1020_evk%22,%0A            %22imxrt1060_evk%22,%0A            %22metro_m7_1011%22,%0A        ):%0A            continue%0A        with open(fn, %22r%22) as f:%0A            head = %22Build %22 + board + %22 for %22%0A            lines = iter(f)%0A            for line in lines:%0A                if head in line:%0A                    tr = line.split(head)%5B1%5D.split()%5B0%5D%0A                    assert %22make: Entering directory%22 in next(lines)%0A                    assert %22Use make V=1, make V=2%22 in next(lines)%0A                    while re.search(%0A                        r%22%5C%7B%5C%7D%7CQSTR updated%7CFREEZE%7C%5C%7B'sku':%7Chex%5Ctfilename%7Cboot2.elf%7CIncluding User C Module from%7CFont missing%7Csection %60.bss' type changed to PROGBITS%22,%0A                        next(lines),%0A                    ):%0A                        pass%0A                    free = next(lines).split(%22bytes used, %22)%5B1%5D.split()%5B0%5D%0A                    print(board + %22,%22 + tr + %22,%22 + free)%0A

add tool to parse out firmware sizes for comparison