summaryrefslogtreecommitdiff
path: root/release
diff options
context:
space:
mode:
authorLaMont Jones <lamontjones@google.com>2022-10-26 16:32:42 +0000
committerLaMont Jones <lamontjones@google.com>2022-11-14 23:46:43 +0000
commitf8af33c9f0ef38fbe9bd6944255738edc8d4e8c7 (patch)
treee953abad8babba2a2e35d0507d85f3a8c9d593ab /release
parented25be569e1c2e1c222010565c186b904eb8646c (diff)
downloadgit-repo-f8af33c9f0ef38fbe9bd6944255738edc8d4e8c7.tar.gz
git-repo-f8af33c9f0ef38fbe9bd6944255738edc8d4e8c7.zip
update-manpages: explicitly strip color codes
On some systems, help2man produces color codes in the output. Remove them to avoid manpage churn. Also begin adding unit tests. Change-Id: I3f0204b19d9cae524d3cb5fcfb61ee309b0931fc Reviewed-on: https://gerrit-review.googlesource.com/c/git-repo/+/349655 Tested-by: LaMont Jones <lamontjones@google.com> Reviewed-by: Xin Li <delphij@google.com>
Diffstat (limited to 'release')
-rwxr-xr-xrelease/update-manpages28
1 files changed, 21 insertions, 7 deletions
diff --git a/release/update-manpages b/release/update-manpages
index d619cf0b7..739cedb1c 100755
--- a/release/update-manpages
+++ b/release/update-manpages
@@ -83,11 +83,6 @@ def main(argv):
with multiprocessing.Pool() as pool:
pool.map(partial(worker, cwd=tempdir, check=True), cmdlist)
- regex = (
- (r'(It was generated by help2man) [0-9.]+', '\g<1>.'),
- (r'^\.IP\n(.*:)\n', '.SS \g<1>\n'),
- (r'^\.PP\nDescription', '.SH DETAILS'),
- )
for tmp_path in MANDIR.glob('*.1.tmp'):
path = tmp_path.parent / tmp_path.stem
old_data = path.read_text() if path.exists() else ''
@@ -95,8 +90,7 @@ def main(argv):
data = tmp_path.read_text()
tmp_path.unlink()
- for pattern, replacement in regex:
- data = re.sub(pattern, replacement, data, flags=re.M)
+ data = replace_regex(data)
# If the only thing that changed was the date, don't refresh. This avoids
# a lot of noise when only one file actually updates.
@@ -106,5 +100,25 @@ def main(argv):
path.write_text(data)
+def replace_regex(data):
+ """Replace semantically null regexes in the data.
+
+ Args:
+ data: manpage text.
+
+ Returns:
+ Updated manpage text.
+ """
+ regex = (
+ (r'(It was generated by help2man) [0-9.]+', '\g<1>.'),
+ (r'^\033\[[0-9;]*m([^\033]*)\033\[m', '\g<1>'),
+ (r'^\.IP\n(.*:)\n', '.SS \g<1>\n'),
+ (r'^\.PP\nDescription', '.SH DETAILS'),
+ )
+ for pattern, replacement in regex:
+ data = re.sub(pattern, replacement, data, flags=re.M)
+ return data
+
+
if __name__ == '__main__':
sys.exit(main(sys.argv[1:]))