From: fred Date: Tue, 26 Mar 2002 22:27:21 +0000 (+0000) Subject: lilypond-1.2.13 X-Git-Tag: release/1.5.59~2121 X-Git-Url: https://git.donarmstrong.com/?a=commitdiff_plain;h=843bf417588a0753e04036a7bf4570a833a2a62f;p=lilypond.git lilypond-1.2.13 --- diff --git a/stepmake/bin/ls-latex.py b/stepmake/bin/ls-latex.py index bf170fba55..2f88134be4 100644 --- a/stepmake/bin/ls-latex.py +++ b/stepmake/bin/ls-latex.py @@ -18,16 +18,18 @@ import glob import re +format_names = {'ps.gz': 'Compressed PostScript', + 'html' : 'HTML' + } + class Latex_head: def __init__ (self): self.author = '' self.title = '' self.date = '' self.format = '' - -def read_latex_header (fn): - s = gulp_file (fn) +def read_latex_header (s): header = Latex_head() m = re.search(r'\\author{([^}]+)}', s) if m: @@ -36,81 +38,69 @@ def read_latex_header (fn): m = re.search (r'\\title{([^}]+)}',s ) if m: header.title = m.group (1) - else: - header.title = 'No title' - - header.outfile = fn - header.outfile = re.sub ('\.latex$', '.ps.gz', header.outfile) - header.outfile = re.sub ('\.tex$', '.ps.gz', header.outfile) - header.outfile = re.sub ('\.doc$', '.ps.gz', header.outfile) - header.format = 'gzipped postscript' + + header.formats = ['ps.gz'] return header -def bib_header (fn): - s = gulp_file (fn) - m = re.search ('% *AUTHOR *= *(.*)$',s) - header = Latex_head() +def read_bib_header (s): + + m = re.search ('% *AUTHOR *= *(.*)\n',s) + + header = Latex_head() + if m: header.author = m.group (1) - - m = re.search ('% *TITLE *= *(.*)$',s ) + m = re.search ('% *TITLE *= *(.*)\n',s ) if m: header.title = m.group (1) - else: - header.title = '(bibliography without title)' - header.outfile = re.sub ( '\.bib$', '.html' , fn) - header.format = 'HTML' + header.formats = ['html'] return header -def read_pod_header (fn): +def read_pod_header (s): header = Latex_head () - s = gulp_file (fn) + i = re.search( '[^\n \t]', s) s = s[i:] i = re.search( '\n\n', s) s = s[i+2:] - if i < 0: - sys.stderr.write ('gulped file: ' + fn + '\n') - raise 'huh?' i = re.search( '\n\n', s) header.title = s[:i] - header.filename = fn - header.outfile = re.sub ('\.pod$', '.html', fn) + return header -def read_texinfo_header (fn): +def read_texinfo_header (s): header = Latex_head () - s = gulp_file (fn) - m = re.search( '@settitle (.*$)', s) - if m: - header.title = m.group (1) - header.filename = fn - header.outfile = re.sub ('\.tely', '.html', fn) - header.format = 'HTML' - return header -def read_tely_header (fn): - header = Latex_head () - s = gulp_file (fn) m = re.search( '@settitle (.*$)', s) if m: header.title = m.group (1) - header.filename = fn - header.outfile = re.sub ('\.tely', '.html', fn) - header.format = 'HTML' + + header.formats = ['html', 'ps.gz'] return header + def print_html_head (l,o,h): pre =o - l.write ('
  • %s (%s)' % (pre + h.outfile, h.title, h.format )) + + fn = pre + h.basename + + t = h.filename + if h.title : + t = t + ': '+ h.title + + l.write ('
  • %s ' % t) + if h.author: l.write ('

    by %s

    ' % h.author) + + for f in h.formats: + l.write ('(%s)' % (fn, f, format_names [f])) l.write ('
  • \n') def help (): @@ -149,19 +139,28 @@ l.write (r"""%s """ % (title, title)) +read_header_funcs = { + 'pod' : read_pod_header, + 'tex' : read_latex_header, + 'doc' : read_latex_header, + 'bib': read_bib_header, + 'latex' : read_latex_header, + 'tely' : read_texinfo_header, + 'texi': read_texinfo_header, +} + + for x in files: - if re.search ('\\.bib$', x) : - head = bib_header (x) - elif re.search ('\\.pod$', x) : - head = read_pod_header (x) - elif re.search ('\\.texinfo$', x) : - head = read_texinfo_header (x) - elif re.search ('\\.tely$', x): - head = read_tely_header (x) - else: - head = read_latex_header (x) - if head.title == '': - head.title = head.filename + m = re.search ('\\.([^.]*)$', x) + if m == None: + continue + + s = gulp_file (x) + head = read_header_funcs [m.group(1)] (s) + + head.filename = x + head.basename = re.sub ("\\.[^.]+", '', x) + print_html_head (l, pre, head) l.write ('')