#!/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)')
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)