From c487cf00101525ff836d59a2a42ef63e85ea9556 Mon Sep 17 00:00:00 2001 From: pukkandan Date: Sun, 17 Apr 2022 22:48:50 +0530 Subject: [cleanup] Misc --- devscripts/make_readme.py | 46 ++++++++++++++++++++++++++++++++++++---------- 1 file changed, 36 insertions(+), 10 deletions(-) (limited to 'devscripts/make_readme.py') diff --git a/devscripts/make_readme.py b/devscripts/make_readme.py index fd234bf58..15c4a7c7d 100755 --- a/devscripts/make_readme.py +++ b/devscripts/make_readme.py @@ -2,6 +2,7 @@ # yt-dlp --help | make_readme.py # This must be run in a console of correct width +import functools import re import sys @@ -12,19 +13,44 @@ OPTIONS_END = 'CONFIGURATION' EPILOG_START = 'See full documentation' -helptext = sys.stdin.read() -if isinstance(helptext, bytes): - helptext = helptext.decode() +def take_section(text, start=None, end=None, *, shift=0): + return text[ + text.index(start) + shift if start else None: + text.index(end) + shift if end else None + ] -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]) + +def apply_patch(text, patch): + return re.sub(*patch, text) + + +options = take_section(sys.stdin.read(), f'\n {OPTIONS_START}', f'\n{EPILOG_START}', shift=1) + +switch_col_width = len(re.search(r'(?m)^\s{5,}', options).group()) +delim = f'\n{" " * switch_col_width}' + +PATCHES = ( + ( # Headings + r'(?m)^ (\w.+\n)( (?=\w))?', + r'## \1' + ), + ( # Do not split URLs + rf'({delim[:-1]})? (?P