]> git.phdru.name Git - phdru.name/phdru.name.git/blobdiff - dotfiles2html/dotfiles2html.py
Added start link.
[phdru.name/phdru.name.git] / dotfiles2html / dotfiles2html.py
index f13e4dcaa95ed9c8262ebdaa99d78cf0d27203c0..10ec3c2ff211b08350a9a9a98e4437c5c8d4ddbf 100755 (executable)
@@ -1,13 +1,19 @@
-#! /usr/local/bin/python -O
+#! /usr/bin/env python
 
-import os, shutil
+__version__ = "$Revision$"[11:-2]
+__revision__ = "$Id$"[5:-2]
+__date__ = "$Date$"[7:-2]
+__author__ = "Oleg Broytman <phd@phd.pp.ru>"
+__copyright__ = "Copyright (C) 2004-2010 PhiloSoft Design"
+
+import os, shutil, filecmp
 os.umask(0022) # octal; -rw-r--r--
 
 from m_lib.m_path import get_homedir
 home_dir = get_homedir()
 
 
-def add_headers(fname, prev, next):
+def add_headers(fname, start, prev, next):
    head_fname = os.path.join(home_dir, fname + ".head")
    head_file = open(head_fname, 'r')
    head = head_file.read()
@@ -18,15 +24,25 @@ def add_headers(fname, prev, next):
    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')
    html_file.write("#extends phd_pp_ru\n")
    html_file.write("#implements respond\n")
-   html_file.write("#attr $Title = \".%s\"\n" % fname)
+   html_file.write("#attr $Title = \"%s\"\n" % dot_name)
    html_file.write("#attr $Copyright = 2003\n")
+   if start:
+      html_file.write("#attr $Start = \"index.html\"\n")
    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 = (("Plain text version", "text/plain", "%s"),)' % txt_name)
    html_file.write("\n")
    html_file.write("#def body_html\n")
    html_file.write("#raw\n")
@@ -39,27 +55,66 @@ def add_headers(fname, prev, next):
    html_file.close()
 
 
-file_types = (("fvwm2rc", "fvwm"),
-      ("mailcap", "conf"), ("mime.types", "conf"),
-      ("muttrc", "muttrc"), ("procmailrc", "procmail"),
-      ("vimrc", "vim"), ("gvimrc", "vim"),
-      ("init.py", "python"), ("init_old.py", "python"))
+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)
 
 for i, (fname, ftype) in enumerate(file_types):
    if os.path.exists('.' + fname) and not os.path.exists(fname):
       shutil.copy2('.' + fname, fname)
-   if os.path.exists(fname):
-      os.system("""exec gvim -f -c "set syntax=%s" -c ":source %s/dotfile2html.vim" "%s"
-         """ % (ftype, home_dir, fname))
-      if i == 0:
-         prev = None
-      else:
-         prev = file_types[i-1][0]
-      if i >= ft_len - 1:
-         next = None
-      else:
-         next = file_types[i+1][0]
-      add_headers(fname, prev, next)
+
+   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('\e', '<Esc>'))
+      file.close()
+
+   elif fname == 'menu' and os.path.exists(fname):
+      file = open('menu', 'r')
+      text = file.read()
+      file.close()
+      file = open('menu', 'w')
+      text = text.replace('mplay', 'mplayer')
+      text = text.replace('mplayerer', '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:
+      start = None
+      prev = None
+   else:
+      start = True
+      prev = file_types[i-1][0]
+   if i >= ft_len - 1:
+      next = None
+   else:
+      next = file_types[i+1][0]
+   add_headers(fname, start, prev, next)
+
+   if os.path.exists(fname + ".tmpl") and filecmp.cmp(fname + ".html", fname + ".tmpl"):
+      os.remove(fname + ".html")
+   else:
       os.rename(fname + ".html", fname + ".tmpl")
-      os.chmod(fname, 0644)
+
+   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)