diff --git a/tools/update-dbus-docs.py b/tools/update-dbus-docs.py index b453a0867e..397d131be8 100755 --- a/tools/update-dbus-docs.py +++ b/tools/update-dbus-docs.py @@ -31,6 +31,10 @@ BORING_INTERFACES = [ 'org.freedesktop.DBus.Introspectable', 'org.freedesktop.DBus.Properties', ] +RED = '\x1b[31m' +GREEN = '\x1b[32m' +YELLOW = '\x1b[33m' +RESET = '\x1b[39m' def xml_parser(): return etree.XMLParser(no_network=True, @@ -289,7 +293,7 @@ def process(page): with open(page, 'w') as out: out.write(out_text) - return dict(stats=stats, outdated=(out_text != src)) + return dict(stats=stats, modified=(out_text != src)) def parse_args(): p = argparse.ArgumentParser() @@ -317,17 +321,19 @@ if __name__ == '__main__': # Let's print all statistics at the end mlen = max(len(page) for page in stats) total = sum((item['stats'] for item in stats.values()), collections.Counter()) - total = 'total', dict(stats=total, outdated=False) - outdated = [] + total = 'total', dict(stats=total, modified=False) + modified = [] + classification = 'OUTDATED' if opts.test else 'MODIFIED' for page, info in sorted(stats.items()) + [total]: m = info['stats']['missing'] t = info['stats']['total'] p = page + ':' - c = 'OUTDATED' if info['outdated'] else '' + c = classification if info['modified'] else '' if c: - outdated.append(page) - print(f'{p:{mlen + 1}} {t - m}/{t} {c}') + modified.append(page) + color = RED if m > t/2 else (YELLOW if m else GREEN) + print(f'{color}{p:{mlen + 1}} {t - m}/{t} {c}{RESET}') - if opts.test and outdated: - exit(f'Outdated pages: {", ".join(outdated)}\n' + if opts.test and modified: + exit(f'Outdated pages: {", ".join(modified)}\n' f'Hint: ninja -C {opts.build_dir} update-dbus-docs')