From 458211d6f69808d681c112bc39023467c010d147 Mon Sep 17 00:00:00 2001 From: John Mandereau Date: Sun, 20 Apr 2008 14:47:00 +0200 Subject: [PATCH] lilypond-book: fix output directory of included files Also restore accidental deletion in write_if_updated() --- scripts/lilypond-book.py | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/scripts/lilypond-book.py b/scripts/lilypond-book.py index 81cb784550..1e29f91931 100644 --- a/scripts/lilypond-book.py +++ b/scripts/lilypond-book.py @@ -1747,9 +1747,14 @@ def write_if_updated (file_name, lines): # this prevents make from always rerunning lilypond-book: # output file must be touched in order to be up to date os.utime (file_name, None) + return except: pass + output_dir = os.path.dirname (file_name) + if not os.path.exists (output_dir): + os.makedirs (output_dir) + progress (_ ("Writing `%s'...") % file_name) file (file_name, 'w').writelines (lines) progress ('\n') @@ -1768,7 +1773,7 @@ def samefile (f1, f2): f2 = re.sub ("//*", "/", f2) return f1 == f2 -def do_file (input_filename): +def do_file (input_filename, included=False): # Ugh. if not input_filename or input_filename == '-': in_handle = sys.stdin @@ -1786,6 +1791,8 @@ def do_file (input_filename): if input_filename == '-': input_base = 'stdin' + elif included: + input_base = os.path.splitext (input_filename)[0] else: input_base = os.path.basename ( os.path.splitext (input_filename)[0]) @@ -1856,7 +1863,7 @@ def do_file (input_filename): name = snippet.substring ('filename') progress (_ ("Processing include: %s") % name) progress ('\n') - return do_file (name) + return do_file (name, included=True) include_chunks = map (process_include, filter (lambda x: isinstance (x, IncludeSnippet), -- 2.39.5