xref: /petsc/doc/add_man_page_redirects.py (revision 0ec0a084dafaf19d7cb029f108202517fa408668)
195216c61SPatrick Sanan""" Add redirect pages to preserve previous man page URLs """
295216c61SPatrick Sanan
395216c61SPatrick Sananimport os
495216c61SPatrick Sanan
595216c61SPatrick SananTEMPLATE = ('<!DOCTYPE html>\n'
695216c61SPatrick Sanan            '<html>'
795216c61SPatrick Sanan            '<head><meta http-equiv="refresh" content="0; url=%s" /></head>'
895216c61SPatrick Sanan            '<body><a href="%s">Click here</a></body>'
995216c61SPatrick Sanan            '</html>')
1095216c61SPatrick Sanan
1195216c61SPatrick Sanan
1295216c61SPatrick Sanandef _generate_page(name, location):
1395216c61SPatrick Sanan    redirect_filename = os.path.join(location, name + ".html")
1495216c61SPatrick Sanan    with open(redirect_filename, "w") as redirect_file:
1595216c61SPatrick Sanan        redirect_file.write(TEMPLATE % (name, name))
1695216c61SPatrick Sanan
1795216c61SPatrick Sanan
1895216c61SPatrick Sanandef add_man_page_redirects(root):
1995216c61SPatrick Sanan    """ Add redirecting .html files for all man pages.
2095216c61SPatrick Sanan
2195216c61SPatrick Sanan    Assumes a particular directory structure relative to root.  For each
22*73fdd05bSBarry Smith    subdirectory (manual page section) of root/manualpages, enumerate all
2395216c61SPatrick Sanan    contained directories as names, and add links name.html which redirect to
2495216c61SPatrick Sanan    name/ (from which a web server will load name/index.html).
2595216c61SPatrick Sanan    """
26*73fdd05bSBarry Smith    manualpages_dir = os.path.join(root, "manualpages")
2795216c61SPatrick Sanan    for mansec in os.listdir(manualpages_dir):
2895216c61SPatrick Sanan        subdirectory = os.path.join(manualpages_dir, mansec)
2995216c61SPatrick Sanan        if os.path.isdir(subdirectory):
3095216c61SPatrick Sanan            for name in os.listdir(subdirectory):
3195216c61SPatrick Sanan                if os.path.isdir(os.path.join(subdirectory, name)):
3295216c61SPatrick Sanan                    _generate_page(name, subdirectory)
33