#!/usr/bin/env python3 # yt-dlp --help | make_readme.py # This must be run in a console of correct width import re import sys README_FILE = 'README.md' OPTIONS_START = 'General Options:' OPTIONS_END = 'CONFIGURATION' EPILOG_START = 'See full documentation' helptext = sys.stdin.read() if isinstance(helptext, bytes): helptext = helptext.decode('utf-8') start, end = helptext.index(f'\n {OPTIONS_START}'), helptext.index(f'\n{EPILOG_START}') options = re.sub(r'(?m)^ (\w.+)$', r'## \1', helptext[start + 1: end + 1]) with open(README_FILE, encoding='utf-8') as f: readme = f.read() header = readme[:readme.index(f'## {OPTIONS_START}')] footer = readme[readme.index(f'# {OPTIONS_END}'):] with open(README_FILE, 'w', encoding='utf-8') as f: for part in (header, options, footer): f.write(part)