#!/usr/bin/env python3 """ A brittle approach to making "Edit this Page" links work on man pages """ import os import re import fileinput EDIT_URL_PATTERN = re.compile(r'

Edit on GitLab

') # very brittle SHOW_SOURCE_PATTERN = re.compile(r'(?s)
\s*\s*
') def fix_man_page_edit_link(root,filename): with open(os.path.join(root,filename)) as f: str = f.read() m = re.findall(EDIT_URL_PATTERN, str) if not m: # print("Cannot find Edit on Gitlab string "+os.path.join(root,filename)) return url = m[0] str = re.sub(SHOW_SOURCE_PATTERN,'',str) replace_link_line = False done = False with open(os.path.join(root,filename),'w') as f: for line in str.split('\n'): if done: f.write(line+'\n') else: if line.lstrip().startswith("\n" % url) done = True elif not 'Edit on GitLab' in line: f.write(line+'\n') def fix_man_page_edit_links(root): base = os.path.join(root, "manualpages") for root, dirs, filenames in os.walk(base): for filename in filenames: if filename.endswith(".html"): fix_man_page_edit_link(root,filename)