scripts: Code Block rst parser

Signed-off-by: John Andersen <john.s.andersen@intel.com>
This commit is contained in:
John Andersen
2019-01-28 14:53:48 -08:00
parent dcaad94000
commit c5e7d3b278
@@ -0,0 +1,31 @@
'''
Usage: python code-blocks.py path/to/file.rst
Parses code blocks out of rst file
'''
import sys
def code_blocks(filename):
with open(filename, 'r') as fd:
c_indent = ''
in_section = []
for line in fd:
indent = line[:len(line) - len(line.lstrip())]
if 'code-block' in line:
in_section = [line.strip()]
c_indent = ''
elif in_section:
if not c_indent and line.strip():
c_indent = indent
if not (len(indent) >= len(c_indent)) and line.strip():
yield in_section[2:]
in_section = []
else:
in_section.append(line[len(c_indent):].rstrip())
def main():
for code_block in code_blocks(sys.argv[1]):
print('\n'.join(code_block) + '\n')
if __name__ == '__main__':
main()