6 # find.py -- deprecated in python 2.0
14 def find(pattern, dir = os.curdir):
16 names = os.listdir(dir)
19 if name in (os.curdir, os.pardir):
21 fullname = os.path.join(dir, name)
22 if fnmatch.fnmatch(name, pattern):
24 if os.path.isdir(fullname) and not os.path.islink(fullname):
26 if fnmatch.fnmatch(name, p):
27 if _debug: print "skip", `fullname`
30 if _debug: print "descend into", `fullname`
31 list = list + find(pattern, fullname)
44 raise 'not there' , fn
47 def file_exist_b (fn):
55 headertext= r"""You're looking at a page with some LilyPond samples.
56 These files are also included in the distribution. The output is
57 completely generated by LilyPond, without any touch up by humans.
62 The PostScript files were generated using TeX and dvips. The pictures
63 are 90dpi anti-aliased snapshots of the printed output. The images
64 are in PNG format, and should be viewable with any current browser.
68 If you want a better impression of the appearance, do print out one of
69 the postscript files."""
73 # FIXME breaks on multiple strings.
75 def read_lilypond_header (fn):
77 s = re.sub('%.*$', '', s)
78 s = re.sub('\n', ' ', s)
81 m = re.search (r"""\\header\s*{([^}]*)}""", s)
89 m = re.search (r"""\s*(\S+)\s*=\s*([^;]+)\s*;""", s)
97 left = re.sub ('"', '', left)
98 right = re.sub ('"', '', right)
104 sys.stdout.write (r"""Usage: mutopia-index [options] INFILE OUTFILE
105 Generate index for mutopia\n
107 -h, --help print this help
108 -o,-output=FILE write output to file.
109 -s, --subdirs=DIR add subdir
110 --suffix=SUF specify suffix"""
115 def gen_list(inputs, filename):
116 print "generating HTML list %s\n" % filename
118 list = open(filename, 'w')
121 list.write ('<html><TITLE>Rendered Examples</TITLE>\n')
122 list.write ('<body bgcolor=white>')
125 list.write (headertext)
127 list.write (headertext_nopics)
131 (base, ext) = os.path.splitext (ex)
132 (base, ext2) = os.path.splitext (base)
136 header = read_lilypond_header(ex)
138 def read_dict(s, default, h =header):
144 head = read_dict('title', os.path.basename (base))
145 composer = read_dict('composer', '')
146 desc = read_dict('description', '')
148 list.write('<h1>example file: %s</h1>' % head);
150 list.write('<h2>%s</h2>\n' % composer)
152 list.write('%s<p>' % desc)
154 def list_item(filename, desc, type, l = list):
155 if file_exist_b(filename):
156 l.write ('<li><a href=%s>%s</a>' % (filename, desc))
157 size=os.stat(filename)[stat.ST_SIZE]
158 l.write (' (%s %dk)' % (type, (size + 512) / 1024))
159 pictures = ['jpeg', 'png', 'xpm']
162 list_item(base + ext, 'The input', 'ASCII')
163 for pageno in range(1,100):
164 f = base + '-page%d.png' % pageno
165 if not file_exist_b (f):
167 list_item(f, 'See a picture of page %d' % pageno, 'png')
168 list_item(base + '.ps.gz', 'Print ', 'gzipped PostScript')
169 list_item(base + '.midi', 'Listen', 'MIDI')
170 list.write ("</ul>");
172 list.write( "</BODY></HTML>");
177 (options, files) = getopt.getopt(sys.argv[1:],
178 'ho:', ['help', 'output='])
179 outfile = 'examples.html'
185 if o == '--help' or o == '-h':
187 elif o == '--output' or o == '-o':
192 dirs = dirs + find ('out-www', f)
200 allfiles = allfiles + find ('*.ly.txt', d)
204 gen_list (allfiles, outfile)