]> git.phdru.name Git - phdru.name/phdru.name.git/blob - dotfiles2html/dotfiles2html.py
Rename *.py to *.py.txt.
[phdru.name/phdru.name.git] / dotfiles2html / dotfiles2html.py
1 #! /usr/bin/env python
2
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-2009 PhiloSoft Design"
8
9
10 import os, shutil, filecmp
11 os.umask(0022) # octal; -rw-r--r--
12
13 from m_lib.m_path import get_homedir
14 home_dir = get_homedir()
15
16
17 def add_headers(fname, prev, next):
18    head_fname = os.path.join(home_dir, fname + ".head")
19    head_file = open(head_fname, 'r')
20    head = head_file.read()
21    head_file.close()
22
23    html_fname = fname + ".html"
24    html_file = open(html_fname, 'r')
25    html = html_file.read()
26    html_file.close()
27
28    html_file = open(html_fname, 'w')
29    html_file.write("#extends phd_pp_ru\n")
30    html_file.write("#implements respond\n")
31    html_file.write("#attr $Title = \".%s\"\n" % fname)
32    html_file.write("#attr $Copyright = 2003\n")
33    if prev:
34       html_file.write("#attr $Prev = \"%s.html\"\n" % prev)
35    if next:
36       html_file.write("#attr $Next = \"%s.html\"\n" % next)
37    html_file.write('#attr $alternates = (("text/plain", "Plain text version", "%s"),)' % fname)
38    html_file.write("\n")
39    html_file.write("#def body_html\n")
40    html_file.write("#raw\n")
41    html_file.write(head)
42    html_file.write("\n")
43    html_file.write(html)
44    html_file.write("#end raw\n")
45    html_file.write("#end def\n")
46    html_file.write("$phd_pp_ru.respond(self)\n")
47    html_file.close()
48
49
50 file_types = (("fvwm2rc", "fvwm2m4"),
51       ("mailcap", "conf"), ("mime.types", "conf"),
52       ("muttrc", "muttrc"), ("procmailrc", "procmail"),
53       ("vimrc", "vim"), ("gvimrc", "vim"),
54       ("init.py", "python"), ("pdbrc", "python"), ("pdbrc.py", "python"))
55 ft_len = len(file_types)
56
57 for i, (fname, ftype) in enumerate(file_types):
58    if os.path.exists('.' + fname) and not os.path.exists(fname):
59       shutil.copy2('.' + fname, fname)
60    if fname == 'vimrc' and os.path.exists(fname):
61       file = open('vimrc', 'r')
62       text = file.read()
63       file.close()
64       file = open('vimrc', 'w')
65       file.write(text.replace('\e', '<Esc>'))
66       file.close()
67    if os.path.exists(fname):
68       os.system("""exec gvim -f -c "set filetype=%s" -c ":source %s/dotfile2html.vim" "%s"
69          """ % (ftype, home_dir, fname))
70       if i == 0:
71          prev = None
72       else:
73          prev = file_types[i-1][0]
74       if i >= ft_len - 1:
75          next = None
76       else:
77          next = file_types[i+1][0]
78       add_headers(fname, prev, next)
79       if os.path.exists(fname + ".tmpl") and filecmp.cmp(fname + ".html", fname + ".tmpl"):
80          os.remove(fname + ".html")
81       else:
82          os.rename(fname + ".html", fname + ".tmpl")
83    if fname == 'vimrc' and os.path.exists('.' + fname):
84       shutil.copy2('.' + fname, fname)
85    if fname.endswith('.py'):
86        new_name = fname + '.txt'
87        os.rename(fname, new_name)
88        fname = new_name
89    if os.path.exists(fname):
90        os.chmod(fname, 0644)