]> git.donarmstrong.com Git - lilypond.git/blobdiff - buildscripts/texi2omf.py
Merge branch 'lilypond/translation' of ssh://jomand@git.sv.gnu.org/srv/git/lilypond
[lilypond.git] / buildscripts / texi2omf.py
index d6c01affb82dd2b13a42776e70763fa368e4c1ba..cc2603f5e03e172b7fb9d130636ea12d461d318d 100644 (file)
@@ -1,17 +1,19 @@
-import time
-import re
-import sys
+#!@PYTHON@
+
 import getopt
 import os
+import re
+import sys
+import time
 
 def usage ():
-       sys.stderr.write ('''
-texi2omf [options] texifile
+    sys.stderr.write ('''
+texi2omf [options] FILE.texi > FILE.omf
 
 Options:
 
---format=FORM         format is FORM. Supported: HTML, PS, PDF
---location=FILE       path to file on disk.
+--format=FORM         set format FORM  (HTML, PS, PDF, [XML]).
+--location=FILE       file name as installed on disk.
 --version=VERSION
 
 Use the following commands (enclose in @ignore)
@@ -24,125 +26,129 @@ etc.
 
 
 ''')
-       
+    
 (options, files) = getopt.getopt (sys.argv[1:], '',
-                                 ['format=', 'location=', 'version='])
+                 ['format=', 'location=', 'version='])
 
 license = 'FDL'
 location = ''
 version = ''
 email = os.getenv ('MAILADDRESS')
 name = os.getenv ('USERNAME')
-
-for (o,a) in options:
-       if o == '--format':
-               format = a
-       elif o == '--location':
-               location = 'file:%s' % a
-       elif o == '--version':
-               version = a
-       else:
-               assert 0
-
-               
+format = 'xml'
+
+for (o, a) in options:
+    if o == '--format':
+        format = a
+    elif o == '--location':
+        location = 'file:%s' % a
+    elif o == '--version':
+        version = a
+    else:
+        assert 0
+
+        
 if not files:
-       usage()
-       sys.exit (2)
+    usage ()
+    sys.exit (2)
 
 
 formats = {
-       'html' : 'text/html',
-       'pdf' : 'application/pdf',
-       'ps.gz' : 'application/postscript',
-       'ps' : 'application/postscript',
-       }
+    'html' : 'text/html',
+    'pdf' : 'application/pdf',
+    'ps.gz' : 'application/postscript',
+    'ps' : 'application/postscript',
+    'xml' : 'text/xml',
+    }
 
 if not formats.has_key (format):
-       sys.stderr.write ("Format `%s' unknown\n" % format)
-       sys.exit (1)
+    sys.stderr.write ("Format `%s' unknown\n" % format)
+    sys.exit (1)
 
 
-infile =files[0]
+infile = files[0]
 
-today = time.localtime()
+today = time.localtime ()
 
-texi = open (infile).read()
+texi = open (infile).read ()
 
 if not location:
-       location = 'file:%s' % re.sub (r'\.*', '.html', infile)
-       
+    location = 'file:/%s' % re.sub (r'\..*', '.' + format, infile)
 
 omf_vars = {
-       'date': '%d-%d-%d' %  today[:3],
-       'mimeformat': formats[format],
-       'maintainer':  "%s (%s)" % (name, email),
-       'version' : version,
-       'location' : location, 
-       }
-
-for a in ['subject','creator', 'title', 'subtitle', 'version', 'category', 'type',
-         'description',  'license']:
-       
-       m = re.search ('@omf%s (.*)\n'% a, texi)
-       if m:
-               omf_vars[a] = m.group (1)
-       elif not omf_vars.has_key (a):
-               omf_vars[a] = ''
-               
+    'date': '%d-%d-%d' %  today[:3],
+    'mimeformat': formats[format],
+    'maintainer':  "%s (%s)" % (name, email),
+    'version' : version,
+    'location' : location,
+    'language' : 'C',
+    }
+
+omf_caterories = ['subject', 'creator', 'maintainer', 'contributor',
+         'title', 'subtitle', 'version', 'category', 'type',
+         'description', 'license', 'language',]
+    
+for a in omf_caterories:
+    m = re.search ('@omf%s (.*)\n'% a, texi)
+    if m:
+        omf_vars[a] = m.group (1)
+    elif not omf_vars.has_key (a):
+        omf_vars[a] = ''
+        
 if not omf_vars['title']:
-       title = ''
-       m = re.search ('@title (.*)\n', texi)
-       if m:
-               title = m.group (1)
+    title = ''
+    m = re.search ('@title (.*)\n', texi)
+    if m:
+        title = m.group (1)
 
-       subtitle = ''
-       m = re.search ('@subtitle (.*)\n', texi)
-       if m:
-               subtitle = m.group (1)
+    subtitle = ''
+    m = re.search ('@subtitle (.*)\n', texi)
+    if m:
+        subtitle = m.group (1)
 
-       if subtitle:
-               title  = '%s -- %s' % (title, subtitle)
+    if subtitle:
+        title  = '%s -- %s' % (title, subtitle)
 
-       omf_vars['title'] = title
-       
+    omf_vars['title'] = title
+    
 if not omf_vars['creator']:
-       m = re.search ('@author (.*)\n', texi)
-       if m:
-               omf_vars['creator'] = m.group (1)
+    m = re.search ('@author (.*)\n', texi)
+    if m:
+        omf_vars['creator'] = m.group (1)
 
 
 
-print r'''
-<?xml version="1.0" encoding="UTF-8"?>
+print r'''<?xml version="1.0" encoding="UTF-8"?>
 <!DOCTYPE omf PUBLIC "-//OMF//DTD Scrollkeeper OMF Variant V1.0//EN" "http://scrollkeeper.sourceforge.net/dtds/scrollkeeper-omf-1.0/scrollkeeper-omf.dtd">
 <omf>
 <resource>
-    <creator>
-      %(creator)s
-    </creator>
-    <maintainer>
-      %(maintainer)s
-    </maintainer>
-    <title>
-      %(title)s
-    </title>
-    <date>
-      %(date)s
-    </date>
-    <version identifier="%(version)s" />
-    <subject category="%(category)s"/>
-    <description>
-    %(description)s
-    </description>
-    <type>
-    %(type)s
-    </type>
-    <format mime="%(mimeformat)s">
-    <identifier url="%(location)s"/>
-    <language code="C"/>
-    <rights type="%(license)s" />
 </resource>
+ <resource>
+  <creator>
+   %(creator)s
+  </creator>
+  <maintainer>
+   %(maintainer)s
+  </maintainer>
+  <title>
+   %(title)s
+  </title>
+  <date>
+   %(date)s
+  </date>
+  <version identifier="%(version)s" date="%(date)s" />
+  <subject category="%(category)s"/>
+  <description>
+  %(description)s
+  </description>
+  <type>
+  %(type)s
+  </type>
+  <format mime="%(mimeformat)s" />
+  <identifier url="%(location)s"/>
+  <language code="%(language)s"/>
+  <rights type="%(license)s" />
+ </resource>
 </omf>
+
 ''' % omf_vars