X-Git-Url: https://git.phdru.name/?a=blobdiff_plain;f=dotfiles2html%2Fdotfiles2html.py;h=7c6f95a18734d8cc32ded20a9de8443911a7b516;hb=HEAD;hp=7be4f5dd11ffdb7f55f1c6b1c236676c57e7fa56;hpb=113112f46b0ff47b5cd6946c34ad5bc715771079;p=phdru.name%2Fphdru.name.git diff --git a/dotfiles2html/dotfiles2html.py b/dotfiles2html/dotfiles2html.py index 7be4f5d..af0076e 100755 --- a/dotfiles2html/dotfiles2html.py +++ b/dotfiles2html/dotfiles2html.py @@ -1,134 +1,147 @@ #! /usr/bin/env python __author__ = "Oleg Broytman " -__copyright__ = "Copyright (C) 2004-2016 PhiloSoft Design" +__copyright__ = "Copyright (C) 2004-2023 PhiloSoft Design" -import os, shutil, filecmp -os.umask(0022) # octal; -rw-r--r-- +import filecmp +import os +import re +import shutil from m_lib.m_path import get_homedir + home_dir = get_homedir() +os.umask(0o022) # octal; -rw-r--r-- + + +home_file_types = ( + ("bashrc", "sh"), ("profile", "sh"), ("shellrc", "sh"), + ("mailcap", "conf"), ("mime.types", "conf"), + ("muttrc", "muttrc"), ("procmailrc", "procmail"), + ("gitconfig", "gitconfig"), ("vimrc", "vim"), +) + +mc_file_types = (("mc.ext", "conf"), ("mc.ext.i", "conf"), ("menu", "conf")) + +python_file_types = ( + ("init.py", "python"), + ("pdbrc", "python"), ("pdbrc.py", "python") +) def add_headers(fname, first, prev, next, last): - head_fname = os.path.join(home_dir, fname + ".head") - head_file = open(head_fname, 'r') - head = head_file.read() - head_file.close() - - html_fname = fname + ".html" - html_file = open(html_fname, 'r') - html = html_file.read() - html_file.close() - - if fname in ("init.py", "pdbrc.py"): - dot_name = fname - txt_name = fname + '.txt' - else: - dot_name = '.' + fname - txt_name = fname - - html_file = open(html_fname, 'w') - if fname in ("muttrc", "procmailrc", "vimrc"): - html_file.write("#encoding koi8-r\n") - html_file.write("#extends phd_site\n") - html_file.write("#implements respond\n") - html_file.write("#attr $Title = \"%s\"\n" % dot_name) - html_file.write("#attr $Copyright = 2003\n") - html_file.write("#attr $First = \"%s.html\"\n" % first) - if prev: - html_file.write("#attr $Prev = \"%s.html\"\n" % prev) - if next: - html_file.write("#attr $Next = \"%s.html\"\n" % next) - html_file.write("#attr $Last = \"%s.html\"\n" % last) - html_file.write('#attr $alternates = (("Plain text version", "text/plain", "%s"),)' % txt_name) - html_file.write("\n") - html_file.write("#def body_html\n") - html_file.write("#raw\n") - html_file.write(head) - html_file.write("\n") - html_file.write(html) - html_file.write("#end raw\n") - html_file.write("#end def\n") - html_file.write("$phd_site.respond(self)\n") - html_file.close() - - -home_file_types = (("bashrc", "sh"), ("profile", "sh"), ("shellrc", "sh"), - ("fvwm2rc", "fvwm2m4"), ("mailcap", "conf"), ("mime.types", "conf"), - ("muttrc", "muttrc"), ("procmailrc", "procmail"), - ("gitconfig", "gitconfig"), ("vimrc", "vim")) - -mc_file_types = (("mc.ext", "conf"), ("menu", "conf")) - -python_file_types = (("init.py", "python"), - ("pdbrc", "python"), ("pdbrc.py", "python")) + head_fname = os.path.join(home_dir, fname + ".head") + head_file = open(head_fname, 'r') + head = head_file.read() + head_file.close() + + html_fname = fname + ".html" + html_file = open(html_fname, 'r') + html = html_file.read() + html_file.close() + + if fname in ("init.py", "pdbrc.py"): + dot_name = fname + txt_name = fname + '.txt' + else: + dot_name = '.' + fname + txt_name = fname + + html_file = open(html_fname, 'w') + if fname in ("muttrc", "procmailrc", "vimrc"): + html_file.write("#encoding koi8-r\n") + html_file.write("#extends phd_site\n") + html_file.write("#implements respond\n") + html_file.write("#attr $Title = \"%s\"\n" % dot_name) + html_file.write("#attr $Copyright = 2003\n") + html_file.write("#attr $First = \"%s.html\"\n" % first) + if prev: + html_file.write("#attr $Prev = \"%s.html\"\n" % prev) + if next: + html_file.write("#attr $Next = \"%s.html\"\n" % next) + html_file.write("#attr $Last = \"%s.html\"\n" % last) + html_file.write( + '#attr $alternates = (("Plain text version", "text/plain", "%s"),)' + % txt_name + ) + html_file.write("\n") + html_file.write("#def body_html\n") + html_file.write("#raw\n") + html_file.write(head) + html_file.write("\n") + html_file.write(html) + html_file.write("#end raw\n") + html_file.write("#end def\n") + html_file.write("$phd_site.respond(self)\n") + html_file.close() + def process_dotfile(i, fname, ftype, file_types): - if os.path.exists('.' + fname) and not os.path.exists(fname): - shutil.copy2('.' + fname, fname) - - if not os.path.exists(fname): - return - - if fname == 'vimrc' and os.path.exists(fname): - file = open('vimrc', 'r') - text = file.read() - file.close() - file = open('vimrc', 'w') - file.write(text.replace('\033', '')) - file.close() - - elif fname in ('mailcap', 'mc.ext', 'menu') and os.path.exists(fname): - file = open(fname, 'r') - text = file.read() - file.close() - file = open(fname, 'w') - if fname == 'mailcap': - text = text.replace( - '-a -n "`which smplayer 2>/dev/null`" -a -n "`which smplayer 2>/dev/null`"', - '-a -n "`which smplayer 2>/dev/null`"') - text = text.replace( - '-a -n "`which mplayer 2>/dev/null`" -a -n "`which mplayer 2>/dev/null`"', - '-a -n "`which mplayer 2>/dev/null`"') - file.write(text) - file.close() - - os.system("""exec gvim -f -c "set filetype=%s" -c ":source %s/dotfile2html.vim" "%s" - """ % (ftype, home_dir, fname)) - - first = file_types[0][0] - if i==0: - prev = None - else: - prev = file_types[i-1][0] - if i >= len(file_types) - 1: - next = None - else: - next = file_types[i+1][0] - last = file_types[-1][0] - add_headers(fname, first, prev, next, last) - - if os.path.exists(fname + ".tmpl") and filecmp.cmp(fname + ".html", fname + ".tmpl"): - os.remove(fname + ".html") - else: - os.rename(fname + ".html", fname + ".tmpl") - - if fname == 'vimrc' and os.path.exists('.' + fname): - shutil.copy2('.' + fname, fname) - - if fname.endswith('.py'): - new_name = fname + '.txt' - os.rename(fname, new_name) - fname = new_name - - if os.path.exists(fname): - os.chmod(fname, 0644) + file = open(fname, 'r') + text = file.read() + file.close() + + text = re.sub('cgmem_nice \\d+ ', '', text) + + if fname in ('mailcap', 'mc.ext', 'mc.ext.ini', 'menu'): + text = text.replace('mplay', 'mplayer') + text = text.replace('mplayerer', 'mplayer') + if fname == 'mailcap': + text = text.replace( + '-a -n "`which mplayer 2>/dev/null`" ' + '-a -n "`which mplayer 2>/dev/null`"', + '-a -n "`which mplayer 2>/dev/null`"') + file = open(fname, 'w') + file.write(text) + file.close() + + os.system( + 'exec gvim -f -c "set filetype=%s" ' + '-c ":source %s/dotfile2html.vim" "%s"' + % (ftype, home_dir, fname) + ) + + first = file_types[0][0] + if i == 0: + prev = None + else: + prev = file_types[i-1][0] + if i >= len(file_types) - 1: + next = None + else: + next = file_types[i+1][0] + last = file_types[-1][0] + add_headers(fname, first, prev, next, last) + + if os.path.exists(fname + ".tmpl") \ + and filecmp.cmp(fname + ".html", fname + ".tmpl"): + os.remove(fname + ".html") + else: + os.rename(fname + ".html", fname + ".tmpl") + + if fname.endswith('.py'): + new_name = fname + '.txt' + os.rename(fname, new_name) + fname = new_name + + if os.path.exists(fname): + os.chmod(fname, 0o644) + def process_files(file_types): for i, (fname, ftype) in enumerate(file_types): - process_dotfile(i, fname, ftype, file_types) + if os.path.exists('.' + fname) and not os.path.exists(fname): + shutil.copy2('.' + fname, fname) + + if not os.path.exists(fname): + continue + + if fname == 'mc.ext.i' and not os.path.exists('mc.ext.ini'): + os.rename('mc.ext.i', 'mc.ext.ini') + if fname == 'mc.ext.i': + fname = 'mc.ext.ini' + + process_dotfile(i, fname, ftype, file_types) + -process_files(home_file_types) -process_files(mc_file_types) -process_files(python_file_types) +process_files(home_file_types + mc_file_types + python_file_types)