From: Julien Rioux Date: Tue, 20 Mar 2012 16:19:56 +0000 (-0400) Subject: lilypond-book: Set include path for --output option (issue 2423). X-Git-Tag: release/2.15.35-1~13 X-Git-Url: https://git.donarmstrong.com/?a=commitdiff_plain;h=03f6b90453f1e4f5d794454c3a3f7f1f63eed0c0;p=lilypond.git lilypond-book: Set include path for --output option (issue 2423). Add the current working dir to the list of include paths. --- diff --git a/scripts/lilypond-book.py b/scripts/lilypond-book.py index 395551ca05..a78fdfc02e 100644 --- a/scripts/lilypond-book.py +++ b/scripts/lilypond-book.py @@ -608,6 +608,22 @@ def do_file (input_filename, included=False): progress (_ ("Removing `%s'") % output_filename) 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 @@ -617,6 +633,10 @@ def do_options (): global_options.information = {'program_version': ly.program_version, 'program_name': ly.program_name } global_options.original_dir = original_dir + 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 nr = 0