X-Git-Url: https://git.phdru.name/?a=blobdiff_plain;f=dotfiles2html%2Fdotfiles2html.py;h=b463f4e4bdfc8b1a736faa2823f718618b1e3c21;hb=3cec70d3b3d460eb4016715028f540d357341788;hp=e9e730eb4a3499abeb6ebf8027faa7bb22e46d27;hpb=739ea9528fa86b602ecbeb5c4711254b2b84563c;p=phdru.name%2Fphdru.name.git diff --git a/dotfiles2html/dotfiles2html.py b/dotfiles2html/dotfiles2html.py index e9e730e..b463f4e 100755 --- a/dotfiles2html/dotfiles2html.py +++ b/dotfiles2html/dotfiles2html.py @@ -1,10 +1,7 @@ #! /usr/bin/env python -__version__ = "$Revision$"[11:-2] -__revision__ = "$Id$"[5:-2] -__date__ = "$Date$"[7:-2] -__author__ = "Oleg Broytman " -__copyright__ = "Copyright (C) 2004-2009 PhiloSoft Design" +__author__ = "Oleg Broytman " +__copyright__ = "Copyright (C) 2004-2013 PhiloSoft Design" import os, shutil, filecmp os.umask(0022) # octal; -rw-r--r-- @@ -13,7 +10,7 @@ from m_lib.m_path import get_homedir home_dir = get_homedir() -def add_headers(fname, prev, next): +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() @@ -32,15 +29,19 @@ def add_headers(fname, prev, next): txt_name = fname html_file = open(html_fname, 'w') - html_file.write("#extends phd_pp_ru\n") + 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 $alternates = (("text/plain", "Plain text version", "%s"),)' % txt_name) + 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") @@ -49,22 +50,26 @@ def add_headers(fname, prev, next): html_file.write(html) html_file.write("#end raw\n") html_file.write("#end def\n") - html_file.write("$phd_pp_ru.respond(self)\n") + html_file.write("$phd_site.respond(self)\n") html_file.close() -file_types = (("profile", "sh"), ("shellrc", "sh"), ("fvwm2rc", "fvwm2m4"), - ("mailcap", "conf"), ("mime.types", "conf"), - ("muttrc", "muttrc"), ("procmailrc", "procmail"), - ("vimrc", "vim"), ("gvimrc", "vim"), - ("init.py", "python"), ("pdbrc", "python"), ("pdbrc.py", "python"), - ("bindings", "conf"), ("menu", "conf")) -ft_len = len(file_types) +home_file_types = (("bashrc", "sh"), ("profile", "sh"), ("shellrc", "sh"), + ("fvwm2rc", "fvwm2m4"), ("mailcap", "conf"), ("mime.types", "conf"), + ("muttrc", "muttrc"), ("procmailrc", "procmail"), ("vimrc", "vim")) -for i, (fname, ftype) in enumerate(file_types): +mc_file_types = (("mc.ext", "conf"), ("menu", "conf")) + +python_file_types = (("init.py", "python"), + ("pdbrc", "python"), ("pdbrc.py", "python")) + +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() @@ -73,29 +78,37 @@ for i, (fname, ftype) in enumerate(file_types): file.write(text.replace('', '')) file.close() - elif fname == 'menu' and os.path.exists(fname): - file = open('menu', 'r') + elif fname in ('mailcap', 'mc.ext', 'menu') and os.path.exists(fname): + file = open(fname, 'r') text = file.read() file.close() - file = open('menu', 'w') - file.write(text.replace('mplay', 'mplayer')) + file = open(fname, 'w') + text = text.replace('mplay', 'mplayer') + text = text.replace('mplayerer', 'mplayer') + if fname == 'mailcap': + text = text.replace( + '-a -n "`whereis smplayer`" -a -n "`whereis smplayer`"', + '-a -n "`whereis smplayer`"') + text = text.replace( + '-a -n "`whereis mplayer`" -a -n "`whereis mplayer`"', + '-a -n "`whereis mplayer`"') + file.write(text) file.close() - if not os.path.exists(fname): - continue - os.system("""exec gvim -f -c "set filetype=%s" -c ":source %s/dotfile2html.vim" "%s" """ % (ftype, home_dir, fname)) - if i == 0: + first = file_types[0][0] + if i==0: prev = None else: prev = file_types[i-1][0] - if i >= ft_len - 1: + if i >= len(file_types) - 1: next = None else: next = file_types[i+1][0] - add_headers(fname, prev, next) + 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") @@ -112,3 +125,11 @@ for i, (fname, ftype) in enumerate(file_types): if os.path.exists(fname): os.chmod(fname, 0644) + +def process_files(file_types): + for i, (fname, ftype) in enumerate(file_types): + process_dotfile(i, fname, ftype, file_types) + +process_files(home_file_types) +process_files(mc_file_types) +process_files(python_file_types)