From 4d6be195eca30d8e3979059687e3cbf5dfa1942d Mon Sep 17 00:00:00 2001 From: Richard Berger Date: Wed, 2 Sep 2020 10:29:29 -0400 Subject: [PATCH] Add utility to fixup doc headers --- doc/utils/fixup_headers.py | 63 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 63 insertions(+) create mode 100755 doc/utils/fixup_headers.py diff --git a/doc/utils/fixup_headers.py b/doc/utils/fixup_headers.py new file mode 100755 index 0000000000..9cb11e9cb5 --- /dev/null +++ b/doc/utils/fixup_headers.py @@ -0,0 +1,63 @@ +#!/usr/bin/env python3 +# Utility script to fix headers in doc pages and generate "Accelerator Styles" portion +import shutil +import re +import argparse + +pattern = re.compile(r"^(fix|pair_style)\s+([a-zA-Z0-9/_]+)\s+command$") + +parser = argparse.ArgumentParser(description='Fixup headers in docs') +parser.add_argument('files', metavar='FILE', nargs='+', help='files to fix') +args = parser.parse_args() + +for orig_file in args.files: + command_type = "unknown" + styles = [] + headings = {} + new_file = f"{orig_file}.tmp" + + with open(orig_file, 'r') as reader, open(new_file, 'w') as writer: + for line in reader: + if line.startswith("Syntax"): + break + + m = pattern.match(line) + if m: + command_type = m.group(1) + style = m.group(2) + + styles.append(style) + + base_name = '/'.join(style.split('/')[0:-1]) + ext = style.split('/')[-1] + + if ext not in ('omp', 'intel', 'kk', 'gpu', 'opt'): + headings[style] = [] + else: + headings[base_name].append(style) + + # write new header + for s in styles: + print(f".. index:: {command_type} {s}", file=writer) + + print(file=writer) + + for s, variants in headings.items(): + header = f"{command_type} {s} command" + print(header, file=writer) + print("="*len(header), file=writer) + print(file=writer) + + if len(variants) > 0: + print("Accelerator Styles: ", end="", file=writer) + print(", ".join([f"*{v}*" for v in variants]), file=writer) + + print(file=writer) + + # write rest of reader + print(line, end="", file=writer) + for line in reader: + print(line, end="", file=writer) + + # override original file + shutil.move(new_file, orig_file)