X-Git-Url: https://git.donarmstrong.com/?a=blobdiff_plain;f=scripts%2Fbuild%2Flys-to-tely.py;h=cab59d91483783e43cfd6f24fca7d0baaa039135;hb=HEAD;hp=a911e02aa2e02d5b99b42b21476f65b0eee62046;hpb=340d7b49e816a5930ae39e17212415f16c8d152d;p=lilypond.git diff --git a/scripts/build/lys-to-tely.py b/scripts/build/lys-to-tely.py index a911e02aa2..cab59d9148 100644 --- a/scripts/build/lys-to-tely.py +++ b/scripts/build/lys-to-tely.py @@ -14,6 +14,7 @@ import sys import os import getopt import re +import glob program_name = 'lys-to-tely' @@ -28,6 +29,7 @@ Options: options -o, --output=NAME write tely doc to NAME -i, --input-filenames=NAME read list of files from a file instead of stdin + -g, --glob-input=GLOB a string which will be passed to glob.glob(GLOB) -t, --title=TITLE set tely doc title TITLE -a, --author=AUTHOR set tely author AUTHOR --template=TEMPLATE use TEMPLATE as Texinfo template file, @@ -43,17 +45,23 @@ def help (text): (options, files) = getopt.getopt (sys.argv[1:], 'f:hn:t:', ['fragment-options=', 'help', 'name=', 'title=', 'author=', 'template=', - 'input-filenames=']) + 'input-filenames=', 'glob-input=']) name = "ly-doc" title = "Ly Doc" author = "Han-Wen Nienhuys and Jan Nieuwenhuizen" input_filename = "" +glob_input = "" template = '''\input texinfo + +@c This file was autogenerated +@c from: %s +@c by: %s + @setfilename %%(name)s.info @settitle %%(title)s -@documentencoding utf-8 +@documentencoding UTF-8 @iftex @afourpaper @end iftex @@ -72,7 +80,7 @@ template = '''\input texinfo %s @bye -''' % include_snippets +''' % (", ".join(files), sys.argv[0], include_snippets) for opt in options: o = opt[0] @@ -90,6 +98,8 @@ for opt in options: author = a elif o == '-i' or o == '--input-filenames': input_filename = a + elif o == '-p' or o == '--glob-input': + glob_input = a elif o == '-f' or o == '--fragment-options': fragment_options = a elif o == '--template': @@ -97,18 +107,19 @@ for opt in options: else: raise Exception ('unknown option: ' + o) -texi_file_re = re.compile ('.*\.i?te(ly|xi)$') -html_file_re = re.compile ('.*\.i?htm(l)?$') -xml_file_re = re.compile ('.*\.i?(xm|mx)l$') -tex_file_re = re.compile ('.*\.i?(la)?tex$') +html_file_re = re.compile ('.*\.i?html?$') +info_file_re = re.compile ('.*\.info$') pdf_file_re = re.compile ('.*\.i?pdf$') +tex_file_re = re.compile ('.*\.i?(la)?tex$') +texi_file_re = re.compile ('.*\.i?te(ly|xi|xinfo)$') +xml_file_re = re.compile ('.*\.i?(xm|mx)l$') def name2line (n): if texi_file_re.match (n): # We have a texi include file, simply include it: s = r"@include %s" % os.path.basename (n) - elif (html_file_re.match (n) or pdf_file_re.match (n) or - tex_file_re.match (n)): + elif (html_file_re.match (n) or info_file_re.match (n) + or pdf_file_re.match (n) or tex_file_re.match (n)): s = r""" @ifhtml @html @@ -143,8 +154,10 @@ def name2line (n): """ % (os.path.basename (n), fragment_options, n) return s -if input_filename: - files = open(input_filename).read().splitlines() +if glob_input: + files = glob.glob(glob_input) +elif input_filename: + files = open(input_filename).read().split() if files: dir = os.path.dirname (name) or "." @@ -155,12 +168,10 @@ if files: s = "\n".join (map (name2line, files)) s = template.replace (include_snippets, s, 1) f = "%s/%s" % (dir, name) - sys.stderr.write ("%s: writing %s..." % (program_name, f)) h = open (f, "w") h.write (s) h.close () - sys.stderr.write ('\n') else: # not Unix philosophy, but hey, at least we notice when # we don't distribute any .ly files. - sys.stderr.write ("No files specified. Doing nothing") + sys.stderr.write ("No files specified. Doing nothing. Use -h to display usage.")