else:
sys.exit (i)
-def identify ():
- ly.encoded_write (sys.stdout, '%s (GNU LilyPond) %s\n' % (ly.program_name, ly.program_version))
-
progress = ly.progress
warning = ly.warning
error = ly.error
+def identify ():
+ progress('%s (GNU LilyPond) %s' % (ly.program_name, ly.program_version))
def warranty ():
identify ()
%s
%s
-''' % ( _ ('Copyright (c) %s by') % '2001--2011',
+''' % ( _ ('Copyright (c) %s by') % '2001--2012',
'\n '.join (authors),
_ ("Distributed under terms of the GNU General Public License."),
_ ("It comes with NO WARRANTY.")))
p.add_option ("-I", '--include', help=_ ("add DIR to include path"),
metavar=_ ("DIR"),
action='append', dest='include_path',
- default=[os.path.abspath (os.getcwd ())])
+ default=[])
p.add_option ('--info-images-dir',
help=_ ("format Texinfo output so that Info will "
progress (_ ("Writing snippets..."))
for snippet in outdated:
snippet.write_ly()
- progress ('\n')
if outdated:
progress (_ ("Processing..."))
- progress ('\n')
process_snippets (options.process_cmd, outdated,
options.formatter, options.lily_output_dir)
output_files,
options.output_dir)
- progress ('\n')
-
###
# Format guessing data
new_str = ''.join (lines)
if oldstr == new_str:
progress (_ ("%s is up to date.") % file_name)
- progress ('\n')
# this prevents make from always rerunning lilypond-book:
# output file must be touched in order to be up to date
progress (_ ("Writing `%s'...") % file_name)
file (file_name, 'w').writelines (lines)
- progress ('\n')
def note_input_file (name, inputs=[]):
try:
progress (_ ("Reading %s...") % input_fullname)
source = in_handle.read ()
- progress ('\n')
if not included:
global_options.formatter.init_default_snippet_options (source)
# Let the formatter modify the chunks before further processing
chunks = global_options.formatter.process_chunks (chunks)
- progress ('\n')
if global_options.filter_cmd:
write_if_updated (output_filename,
elif global_options.process_cmd:
do_process_cmd (chunks, input_fullname, global_options)
progress (_ ("Compiling %s...") % output_filename)
- progress ('\n')
write_if_updated (output_filename,
[s.replacement_text ()
for s in chunks])
os.chdir (original_dir)
name = snippet.substring ('filename')
progress (_ ("Processing include: %s") % name)
- progress ('\n')
return do_file (name, included=True)
include_chunks = map (process_include,
except BookSnippet.CompileError:
os.chdir (original_dir)
progress (_ ("Removing `%s'") % output_filename)
- progress ('\n')
raise BookSnippet.CompileError
+def inverse_relpath (path, relpath):
+ """Given two paths, the second relative to the first,
+ return the first path relative to the second."""
+ if os.path.isabs (relpath):
+ return os.path.abspath (path)
+ relparts = ['']
+ parts = os.path.normpath (path).split (os.path.sep)
+ for part in os.path.normpath (relpath).split (os.path.sep):
+ if part == '..':
+ relparts.append (parts[-1])
+ parts.pop ()
+ else:
+ relparts.append ('..')
+ parts.append (part)
+ return os.path.sep.join (relparts[::-1])
+
def do_options ():
global global_options
(global_options, args) = opt_parser.parse_args ()
global_options.information = {'program_version': ly.program_version, 'program_name': ly.program_name }
+ global_options.original_dir = original_dir
+
+ if global_options.lily_output_dir:
+ global_options.lily_output_dir = os.path.expanduser (global_options.lily_output_dir)
+ global_options.include_path.insert (0, inverse_relpath (original_dir, global_options.lily_output_dir))
- global_options.include_path = map (os.path.abspath, global_options.include_path)
+ if global_options.output_dir:
+ global_options.output_dir = os.path.expanduser (global_options.output_dir)
+ global_options.include_path.insert (0, inverse_relpath (original_dir, global_options.output_dir))
# Load the python packages (containing e.g. custom formatter classes)
# passed on the command line
if global_options.lily_output_dir:
# This must be first, so lilypond prefers to read .ly
# files in the other lybookdb dir.
- includes = [os.path.abspath(global_options.lily_output_dir)] + includes
+ includes = [global_options.lily_output_dir] + includes
global_options.process_cmd += ' '.join ([' -I %s' % ly.mkarg (p)
for p in includes])
base_file_name + global_options.formatter.default_extension)
os.chdir (original_dir)
- file (dep_file, 'w').write ('%s: %s'
+ file (dep_file, 'w').write ('%s: %s\n'
% (final_output_file, ' '.join (inputs)))
if __name__ == '__main__':