3 __version__ = "$Revision$"[11:-2]
4 __revision__ = "$Id$"[5:-2]
5 __date__ = "$Date$"[7:-2]
6 __author__ = "Oleg Broytman <phd@phd.pp.ru>"
7 __copyright__ = "Copyright (C) 2004-2010 PhiloSoft Design"
9 import os, shutil, filecmp
10 os.umask(0022) # octal; -rw-r--r--
12 from m_lib.m_path import get_homedir
13 home_dir = get_homedir()
16 def add_headers(fname, start, prev, next):
17 head_fname = os.path.join(home_dir, fname + ".head")
18 head_file = open(head_fname, 'r')
19 head = head_file.read()
22 html_fname = fname + ".html"
23 html_file = open(html_fname, 'r')
24 html = html_file.read()
27 if fname in ("init.py", "pdbrc.py"):
29 txt_name = fname + '.txt'
31 dot_name = '.' + fname
34 html_file = open(html_fname, 'w')
35 html_file.write("#extends phd_pp_ru\n")
36 html_file.write("#implements respond\n")
37 html_file.write("#attr $Title = \"%s\"\n" % dot_name)
38 html_file.write("#attr $Copyright = 2003\n")
40 html_file.write("#attr $Start = \"index.html\"\n")
42 html_file.write("#attr $Prev = \"%s.html\"\n" % prev)
44 html_file.write("#attr $Next = \"%s.html\"\n" % next)
45 html_file.write('#attr $alternates = (("Plain text version", "text/plain", "%s"),)' % txt_name)
47 html_file.write("#def body_html\n")
48 html_file.write("#raw\n")
52 html_file.write("#end raw\n")
53 html_file.write("#end def\n")
54 html_file.write("$phd_pp_ru.respond(self)\n")
58 file_types = (("profile", "sh"), ("shellrc", "sh"), ("fvwm2rc", "fvwm2m4"),
59 ("mailcap", "conf"), ("mime.types", "conf"),
60 ("muttrc", "muttrc"), ("procmailrc", "procmail"),
61 ("vimrc", "vim"), ("gvimrc", "vim"),
62 ("init.py", "python"), ("pdbrc", "python"), ("pdbrc.py", "python"),
63 ("bindings", "conf"), ("menu", "conf"))
64 ft_len = len(file_types)
66 for i, (fname, ftype) in enumerate(file_types):
67 if os.path.exists('.' + fname) and not os.path.exists(fname):
68 shutil.copy2('.' + fname, fname)
70 if fname == 'vimrc' and os.path.exists(fname):
71 file = open('vimrc', 'r')
74 file = open('vimrc', 'w')
75 file.write(text.replace('
\e', '<Esc>'))
78 elif fname == 'menu' and os.path.exists(fname):
79 file = open('menu', 'r')
82 file = open('menu', 'w')
83 text = text.replace('mplay', 'mplayer')
84 text = text.replace('mplayerer', 'mplayer')
88 if not os.path.exists(fname):
91 os.system("""exec gvim -f -c "set filetype=%s" -c ":source %s/dotfile2html.vim" "%s"
92 """ % (ftype, home_dir, fname))
99 prev = file_types[i-1][0]
103 next = file_types[i+1][0]
104 add_headers(fname, start, prev, next)
106 if os.path.exists(fname + ".tmpl") and filecmp.cmp(fname + ".html", fname + ".tmpl"):
107 os.remove(fname + ".html")
109 os.rename(fname + ".html", fname + ".tmpl")
111 if fname == 'vimrc' and os.path.exists('.' + fname):
112 shutil.copy2('.' + fname, fname)
114 if fname.endswith('.py'):
115 new_name = fname + '.txt'
116 os.rename(fname, new_name)
119 if os.path.exists(fname):
120 os.chmod(fname, 0644)