mirror of
https://github.com/verilator/verilator.git
synced 2025-01-04 05:37:48 +00:00
75 lines
2.7 KiB
Python
Executable File
75 lines
2.7 KiB
Python
Executable File
#!/usr/bin/env python3
|
|
# pylint: disable=C0112,C0114,C0115,C0116,C0209,C0301,R0903
|
|
# -*- Python -*- See copyright, etc below
|
|
######################################################################
|
|
|
|
import argparse
|
|
import os
|
|
import re
|
|
|
|
#######################################################################
|
|
|
|
|
|
class VlSphinxFix:
|
|
debug = 0
|
|
SkipBasenames = {}
|
|
|
|
def process(self, path):
|
|
if os.path.isdir(path):
|
|
for basefile in os.listdir(path):
|
|
file = os.path.join(path, basefile)
|
|
if ((basefile != ".") and (basefile != "..") and basefile not in self.SkipBasenames
|
|
and not os.path.islink(file)):
|
|
self.process(file)
|
|
elif re.search(r'\.(html|tex)$', path):
|
|
self._edit(path)
|
|
|
|
def _edit(self, filename):
|
|
is_html = re.search(r'\.(html)$', filename)
|
|
with open(filename, "r", encoding="utf8") as fhr:
|
|
origfile = fhr.read()
|
|
wholefile = origfile
|
|
# Option doesn't like spaces, so we use
|
|
# :option:`/*verilator&32;metacomment*/`
|
|
wholefile = re.sub(r'verilator-32-', r'verilator-', wholefile)
|
|
if is_html:
|
|
wholefile = re.sub(r'&32;', r' ', wholefile)
|
|
wholefile = re.sub(r'&96;', r'`', wholefile)
|
|
else:
|
|
wholefile = re.sub(r'&32;', r' ', wholefile)
|
|
wholefile = re.sub(r'&96;', r'`', wholefile)
|
|
if wholefile != origfile:
|
|
if self.debug:
|
|
print("Edit %s" % filename)
|
|
tempname = filename + ".tmp"
|
|
with open(tempname, "w", encoding="utf8") as fhw:
|
|
fhw.write(wholefile)
|
|
os.rename(tempname, filename)
|
|
|
|
|
|
#######################################################################
|
|
|
|
parser = argparse.ArgumentParser(
|
|
allow_abbrev=False,
|
|
formatter_class=argparse.RawDescriptionHelpFormatter,
|
|
description="""Post-process Sphinx HTML.""",
|
|
epilog=""" Copyright 2021-2024 by Wilson Snyder. This package is free software;
|
|
you can redistribute it and/or modify it under the terms of either the GNU
|
|
Lesser General Public License Version 3 or the Perl Artistic License
|
|
Version 2.0.
|
|
|
|
SPDX-License-Identifier: LGPL-3.0-only OR Artistic-2.0""")
|
|
|
|
parser.add_argument('--debug', action='store_const', const=9, help='enable debug')
|
|
parser.add_argument('path', help='path to edit')
|
|
Args = parser.parse_args()
|
|
|
|
o = VlSphinxFix()
|
|
o.debug = Args.debug
|
|
o.process(Args.path)
|
|
|
|
######################################################################
|
|
# Local Variables:
|
|
# compile-command: "./vl_sphinx_fix --debug _build"
|
|
# End:
|