import sys
import re
+# Users of python modules should include this snippet
+# and customize variables below.
+
+# We'll suffer this path initialization stuff as long as we don't install
+# our python packages in <prefix>/lib/pythonX.Y
+
+# If set, LILYPONDPREFIX must take prevalence.
+# if datadir is not set, we're doing a build and LILYPONDPREFIX.
+
################
# RELOCATION
################
+datadir = '@local_lilypond_datadir@'
+if not os.path.isdir (datadir):
+ datadir = '@lilypond_datadir@'
+
+sys.path.insert (0, os.path.join (datadir, 'python'))
+
+if os.environ.has_key ('LILYPONDPREFIX'):
+ datadir = os.environ['LILYPONDPREFIX']
+ while datadir[-1] == os.sep:
+ datadir = datadir[:-1]
-for d in ['@lilypond_datadir@',
- '@lilypond_libdir@']:
- sys.path.insert (0, os.path.join (d, 'python'))
+ if not os.path.exists (os.path.join (datadir, 'python/lilylib.py')):
+ datadir = os.path.join (datadir, 'share/lilypond/current/')
+sys.path.insert (0, os.path.join (datadir, 'python'))
# dynamic relocation, for GUB binaries.
-bindir = os.path.abspath (os.path.split (sys.argv[0])[0])
+bindir = os.path.split (sys.argv[0])[0]
-os.environ['PATH'] = bindir + os.pathsep + os.environ['PATH']
-for p in ['share', 'lib']:
- datadir = os.path.abspath (bindir + '/../%s/lilypond/current/python/' % p)
+
+for prefix_component in ['share', 'lib']:
+ datadir = os.path.abspath (bindir + '/../%s/lilypond/current/python/' % prefix_component)
sys.path.insert (0, datadir)
p.add_option ('-f', '--format',
help=_('''use output format FORMAT (texi [default], texi-html, latex, html)'''),
action='store')
-
p.add_option ("-I", '--include', help=_('add DIR to include path'),
metavar="DIR",
action='append', dest='include_path',
help = _ ("process ly_files using COMMAND FILE..."),
action='store',
dest='process_cmd', default='lilypond -b eps')
-
- p.add_option ('--pdf',
- action="store_true",
- dest="create_pdf",
- help="Create PDF files for use with PDFTeX",
- default=False)
p.add_option ('', '--psfonts', action="store_true", dest="psfonts",
help=_ ('''extract all PostScript fonts into INPUT.psfonts for LaTeX'''
LATEX: {
OUTPUT: r'''{%%
\parindent 0pt%%
+\catcode`\@=12%%
\ifx\preLilyPondExample \undefined%%
\relax%%
\else%%
PREAMBLE_LY = '''%%%% Generated by %(program_name)s
%%%% Options: [%(option_string)s]
-\\include "lilypond-book-preamble.ly"
+
+#(set! toplevel-score-handler print-score-with-defaults)
+#(set! toplevel-music-handler
+ (lambda (p m)
+ (if (not (eq? (ly:music-property m \'void) #t))
+ (print-score-with-defaults
+ p (scorify-music m p)))))
+
+#(ly:set-option (quote no-point-and-click))
+#(define inside-lilypond-book #t)
+#(define version-seen? #t)
%(preamble_string)s
%% ****************************************************************
\paper {
- #(define dump-extents #t)
- %(font_dump_setting)s
- %(paper_string)s
+ #(define dump-extents #t)
+ %(font_dump_setting)s
+ %(paper_string)s
}
\layout {
- %(layout_string)s
+ %(layout_string)s
}
'''
self.do_options (os, self.type)
def ly (self):
- contents = self.substring ('code')
- return ('\\sourcefileline %d\n%s'
- % (self.line_number - 1, contents))
+ return self.substring ('code')
def full_ly (self):
s = self.ly ()
options = split_options (option_string)
for i in options:
- if '=' in i:
+ if string.find (i, '=') > 0:
(key, value) = re.split ('\s*=\s*', i)
self.option_dict[key] = value
else:
if VERBATIM in self.option_dict:
verb = self.substring ('code')
str += (output[LATEX][VERBATIM] % vars ())
-
+
str += (output[LATEX][OUTPUT] % vars ())
## todo: maintain breaks
## strip version string to make automated regtest comparisons
## across versions easier.
contents = re.sub (r'\\version *"[^"]*"', '', contents)
-
- return ('\\sourcefilename \"%s\"\n\\sourcefileline 0\n%s'
+
+ return ('\\sourcefilename \"%s\"\n%s'
% (name, contents))
snippet_type_to_class = {
snippets = []
index = 0
- found = dict ([(t, None) for t in types])
+ found = dict ((t, None) for t in types)
line_starts = find_linestarts (s)
line_start_idx = 0
status = 0
def my_system (cmd):
status = ly.system (cmd,
- be_verbose=global_options.verbose,
- progress_p=1)
+ be_verbose=global_options.verbose,
+ progress_p= 1)
if global_options.format in (HTML, TEXINFO):
- cmd += ' --formats=png '
+ cmd += ' --format png '
# UGH
# the --process=CMD switch is a bad idea
my_system ('latex %s.texstr' % l)
if ly_names:
- open ('snippet-names', 'wb').write ('\n'.join (['snippet-map.ly']
- + ly_names))
-
- my_system (string.join ([cmd, 'snippet-names']))
-
+ my_system (string.join ([cmd, 'snippet-map.ly'] + ly_names))
LATEX_INSPECTION_DOCUMENT = r'''
\nonstopmode
def write_file_map (lys, name):
snippet_map = open ('snippet-map.ly', 'w')
snippet_map.write ("""
-#(define version-seen #t)
+#(define version-seen? #t)
#(ly:add-file-name-alist '(
""")
for ly in lys:
- snippet_map.write ('("%s.ly" . "%s")\n'
+ snippet_map.write ('("%s.ly" . "%s:%d (%s.ly)")\n'
% (ly.basename (),
- name))
+ name,
+ ly.line_number,
+ ly.basename ()))
snippet_map.write ('))\n')
formats = 'ps'
if global_options.format in (TEXINFO, HTML):
formats += ',png'
-
-
if global_options.process_cmd == '':
- global_options.process_cmd = (lilypond_binary
- + ' --formats=%s --backend eps ' % formats)
+ global_options.process_cmd = lilypond_binary \
+ + ' --formats=%s --backend eps ' % formats
if global_options.process_cmd:
- global_options.process_cmd += string.join ([(' -I %s' % ly.mkarg (p))
+ global_options.process_cmd += string.join ([(' -I %s' % commands.mkarg (p))
for p in global_options.include_path])
- if global_options.format in (TEXINFO, LATEX):
- ## prevent PDF from being switched on by default.
- global_options.process_cmd += ' --formats=eps '
-
- if (global_options.format in (TEXINFO, LATEX)
- and global_options.create_pdf):
- global_options.process_cmd += "--pdf -dinclude-eps-fonts -dgs-load-fonts "
-
-
-
- if global_options.verbose:
- global_options.process_cmd += " --verbose "
-
- global_options.process_cmd += " -dread-file-list -dpad-eps-boxes "
-
identify ()
try:
exit (1)
if global_options.format in (TEXINFO, LATEX):
+ if not global_options.psfonts:
+ warning (_ ("option --psfonts not used"))
+ warning (_ ("processing with dvips will have no fonts"))
+
psfonts_file = os.path.join (global_options.output_name, basename + '.psfonts')
output = os.path.join (global_options.output_name, basename + '.dvi' )
- if not global_options.psfonts and not global_options.create_pdf:
- warning (_ ("option --psfonts not used"))
- warning (_ ("processing with dvips will have no fonts"))
- else:
- progress ('\n')
- progress (_ ("DVIPS usage:"))
- progress ('\n')
- progress (" dvips -h %(psfonts_file)s %(output)s" % vars ())
- progress ('\n')
+ progress ('\n')
+ progress (_ ("DVIPS usage:"))
+ progress ('\n')
+ progress (" dvips -h %(psfonts_file)s %(output)s" % vars ())
+ progress ('\n')
inputs = note_input_file ('')
inputs.pop ()