X-Git-Url: https://git.donarmstrong.com/?a=blobdiff_plain;f=buildscripts%2Fmutopia-index.py;h=57a9a3f3d51383d84b7574b3b6aa1f3e96c19857;hb=50544a7e764debe4a149220497c854ee0819d95c;hp=76ad6e1c5b5becaa8be65f6941f7349fad6fe879;hpb=2a9cc7cb27cb22a8cd27c165daa0807a20caec46;p=lilypond.git diff --git a/buildscripts/mutopia-index.py b/buildscripts/mutopia-index.py index 76ad6e1c5b..57a9a3f3d5 100644 --- a/buildscripts/mutopia-index.py +++ b/buildscripts/mutopia-index.py @@ -10,196 +10,197 @@ import stat import sys def find (pat, dir): - f = os.popen ('find %s -name "%s"'% (dir, pat)) - lst = [] - for a in f.readlines(): - a = a[:-1] - lst.append (a) - return lst + f = os.popen ('find %s -name "%s"'% (dir, pat)) + lst = [] + for a in f.readlines(): + a = a[:-1] + lst.append (a) + return lst +junk_prefix = 'out-www/' headertext= r"""

LilyPond samples

- +

You're looking at a page with some LilyPond samples. These files are also included in the distribution. The output is completely -generated from the .ly source file, without any further touch -up. +generated from the source file, without any further touch up.

The pictures are 90 dpi anti-aliased snapshots of the printed output. -If you want a better impression of the appearance, do print out one of -the PDF or PostScript files; they use scalable fonts, and should look -good at any resolution. - +For a good impression of the quality print out the PDF file. """ headertext_nopics= r""" -

Nothing to be seen here, move along. +

No examples were found in this directory. """ # # FIXME breaks on multiple strings. # def read_lilypond_header (fn): - s = open (fn).read () - s = re.sub ('%.*$', '', s) - s = re.sub ('\n', ' ', s) + s = open (fn).read () + s = re.sub ('%.*$', '', s) + s = re.sub ('\n', ' ', s) - dict = {} - m = re.search (r"""\\header\s*{([^}]*)}""", s) + dict = {} + m = re.search (r"""\\header\s*{([^}]*)}""", s) - if m: - s = m.group (1) - else: - return dict + if m: + s = m.group (1) + else: + return dict - while s: - m = re.search (r'''\s*(\S+)\s*=\s*"([^"]+)"''', s) - if m == None: - s = '' - else: - s = s[m.end (0):] - left = m.group (1) - right = m.group (2) + while s: + m = re.search (r'''\s*(\S+)\s*=\s*"([^"]+)"''', s) + if m == None: + s = '' + else: + s = s[m.end (0):] + left = m.group (1) + right = m.group (2) - left = re.sub ('"', '', left) - right = re.sub ('"', '', right) - dict[left] = right + left = re.sub ('"', '', left) + right = re.sub ('"', '', right) + dict[left] = right - return dict + return dict def help (): - sys.stdout.write (r'''Usage: mutopia-index [OPTIONS] INFILE OUTFILE + sys.stdout.write (r'''Usage: mutopia-index [OPTIONS] INFILE OUTFILE Generate index for mutopia. Options: - -h, --help print this help - -o, --output=FILE write output to file - -s, --subdirs=DIR add subdir - --suffix=SUF specify suffix - + -h, --help print this help + -o, --output=FILE write output to file + -s, --subdirs=DIR add subdir + --suffix=SUF specify suffix + ''') - sys.exit (0) + sys.exit (0) # ugh. def gen_list (inputs, file_name): - sys.stderr.write ("generating HTML list %s" % file_name) - sys.stderr.write ('\n') - if file_name: - list = open (file_name, 'w') - else: - list = sys.stdout - list.write ('''Rendered Examples + sys.stderr.write ("generating HTML list %s" % file_name) + sys.stderr.write ('\n') + if file_name: + list = open (file_name, 'w') + else: + list = sys.stdout + list.write ('''Rendered Examples ''') - list.write ('\n') - - if inputs: - list.write (headertext) - else: - list.write (headertext_nopics) - - for ex in inputs: - print ex - - (base, ext) = os.path.splitext (ex) - (base, ext2) = os.path.splitext (base) - ext = ext2 + ext - - header = read_lilypond_header (ex) - def read_dict (s, default, h = header): - try: - ret = h[s] - except KeyError: - ret = default - return ret - head = read_dict ('title', os.path.basename (base)) - composer = read_dict ('composer', '') - desc = read_dict ('description', '') - list.write ('


\n') - list.write ('

%s

\n' % head); - if composer: - list.write ('

%s

\n' % composer) - if desc: - list.write ('%s

' % desc) - list.write ('

\n'); - - list.write ('\n'); - list.close () + list.write ('\n') + + if inputs: + list.write (headertext) + else: + list.write (headertext_nopics) + + for ex in inputs: + print ex + + (base, ext) = os.path.splitext (ex) + (base, ext2) = os.path.splitext (base) + ext = ext2 + ext + + header = read_lilypond_header (ex) + def read_dict (s, default, h = header): + try: + ret = h[s] + except KeyError: + ret = default + return ret + head = read_dict ('title', os.path.basename (base)) + composer = read_dict ('composer', '') + desc = read_dict ('description', '') + list.write ('
\n') + list.write ('

%s

\n' % head); + if composer: + list.write ('

%s

\n' % composer) + if desc: + list.write ('%s

' % desc) + list.write ('

\n'); + + list.write ('\n'); + list.close () (options, files) = getopt.getopt (sys.argv[1:], - 'ho:', ['help', 'output=']) + 'ho:', ['help', 'output=']) outfile = 'examples.html' subdirs = [] for opt in options: - o = opt[0] - a = opt[1] - if o == '--help' or o == '-h': - help () - elif o == '--output' or o == '-o': - outfile = a + o = opt[0] + a = opt[1] + if o == '--help' or o == '-h': + help () + elif o == '--output' or o == '-o': + outfile = a dirs = [] for f in files: - dirs = dirs + find ('out-www', f) + dirs = dirs + find ('out-www', f) if not dirs: - dirs = ['.'] + dirs = ['.'] allfiles = [] for d in dirs: - allfiles = allfiles + find ('*.ly.txt', d) + allfiles = allfiles + find ('*.ly', d) + +allfiles = filter (lambda x: not x.endswith ('snippet-map.ly') and not re.search ('lily-[0-9a-f]+', x), allfiles) +allfiles = filter (lambda x: 'musicxml' not in x, allfiles) + gen_list (allfiles, outfile)