From: Phil Holmes Date: Tue, 7 Jun 2011 14:05:27 +0000 (+0100) Subject: Redirects lilypond output to reduce make doc noise X-Git-Tag: release/2.15.2-1~2^2~23 X-Git-Url: https://git.donarmstrong.com/?a=commitdiff_plain;h=3623cfc12bb53499a591ae45ac61931bafc6bf20;p=lilypond.git Redirects lilypond output to reduce make doc noise Redirects the output from lilypond when lily is run from lilypond-book as part of make doc. Normal output goes to *.log, error output to *.err.log. --- diff --git a/make/ly-rules.make b/make/ly-rules.make index 0df0643ee3..a876b04f18 100644 --- a/make/ly-rules.make +++ b/make/ly-rules.make @@ -22,11 +22,11 @@ $(eval $(firstword $(TEXI_FILES_FROM_TELY)):\ # don't do ``cd $(outdir)'', and assume that $(outdir)/.. is the src dir. # it is not, for --srcdir builds $(outdir)/%.texi: %.tely $(outdir)/version.itexi $(DOCUMENTATION_LOCALE_TARGET) $(INIT_LY_SOURCES) $(SCHEME_SOURCES) - LILYPOND_VERSION=$(TOPLEVEL_VERSION) $(PYTHON) $(LILYPOND_BOOK) $(LILYPOND_BOOK_INCLUDES) --process='$(LILYPOND_BOOK_PROCESS) $(LILYPOND_BOOK_LILYPOND_FLAGS)' --output=$(outdir) --format=$(LILYPOND_BOOK_FORMAT) $(LILYPOND_BOOK_FLAGS) $< + LILYPOND_VERSION=$(TOPLEVEL_VERSION) $(PYTHON) $(LILYPOND_BOOK) $(LILYPOND_BOOK_INCLUDES) --process='$(LILYPOND_BOOK_PROCESS) $(LILYPOND_BOOK_LILYPOND_FLAGS)' --output=$(outdir) --format=$(LILYPOND_BOOK_FORMAT) $(LILYPOND_BOOK_FLAGS) --redirect-lilypond-output $< $(outdir)/%.texi: $(outdir)/%.tely $(outdir)/version.itexi $(DOCUMENTATION_LOCALE_TARGET) $(INIT_LY_SOURCES) $(SCHEME_SOURCES) - LILYPOND_VERSION=$(TOPLEVEL_VERSION) $(PYTHON) $(LILYPOND_BOOK) $(LILYPOND_BOOK_INCLUDES) --process='$(LILYPOND_BOOK_PROCESS) $(LILYPOND_BOOK_INCLUDES) $(LILYPOND_BOOK_LILYPOND_FLAGS)' --output=$(outdir) --format=$(LILYPOND_BOOK_FORMAT) $(LILYPOND_BOOK_FLAGS) $< + LILYPOND_VERSION=$(TOPLEVEL_VERSION) $(PYTHON) $(LILYPOND_BOOK) $(LILYPOND_BOOK_INCLUDES) --process='$(LILYPOND_BOOK_PROCESS) $(LILYPOND_BOOK_INCLUDES) $(LILYPOND_BOOK_LILYPOND_FLAGS)' --output=$(outdir) --format=$(LILYPOND_BOOK_FORMAT) $(LILYPOND_BOOK_FLAGS) --redirect-lilypond-output $< $(outdir)/%.html.omf: %.tely diff --git a/python/lilylib.py b/python/lilylib.py index 6fb96bbbf5..db4d0456b7 100644 --- a/python/lilylib.py +++ b/python/lilylib.py @@ -23,6 +23,7 @@ import re import shutil import sys import optparse +import time ################################################################ # Users of python modules should include this snippet @@ -118,6 +119,7 @@ def subprocess_system (cmd, ignore_error=False, progress_p=True, be_verbose=False, + redirect_output=False, log_file=None): import subprocess @@ -125,16 +127,25 @@ def subprocess_system (cmd, name = command_name (cmd) error_log_file = '' - if be_verbose: - show_progress = 1 - progress (_ ("Invoking `%s\'") % cmd) + if redirect_output: + progress (_ ("Processing %s.ly") % log_file) else: - progress ( _("Running %s...") % name) - + if be_verbose: + show_progress = 1 + progress (_ ("Invoking `%s\'") % cmd) + else: + progress ( _("Running %s...") % name) stdout_setting = None + stderr_setting = None if not show_progress: - stdout_setting = subprocess.PIPE + stdout_setting = subprocess.PIPE + + if redirect_output: + stdout_filename = ''.join([log_file, '.log']) + stderr_filename = ''.join([log_file, '.err.log']) + stdout_setting = open(stdout_filename, 'w') + stderr_setting = open(stderr_filename, 'w') proc = subprocess.Popen (cmd, shell=True, @@ -144,11 +155,18 @@ def subprocess_system (cmd, log = '' - if show_progress: - retval = proc.wait() + if redirect_output: + while proc.poll()==None: + time.sleep(1) + retval = proc.returncode + stdout_setting.close() + stderr_setting.close() else: - log = proc.communicate () - retval = proc.returncode + if show_progress: + retval = proc.wait() + else: + log = proc.communicate () + retval = proc.returncode if retval: diff --git a/scripts/lilypond-book.py b/scripts/lilypond-book.py index 9617f3666d..a0501cae9e 100644 --- a/scripts/lilypond-book.py +++ b/scripts/lilypond-book.py @@ -179,6 +179,11 @@ def get_option_parser (): action='store', dest='process_cmd', default='') + p.add_option ('--redirect-lilypond-output', + help = _ ("Redirect the lilypond output"), + action='store_true', + dest='redirect_output', default=False) + p.add_option ('-s', '--safe', help=_ ("Compile snippets in safe mode"), action="store_true", default=False, @@ -347,7 +352,7 @@ def find_toplevel_snippets (input_string, formatter): return snippets -def system_in_directory (cmd, directory): +def system_in_directory (cmd, directory, logfile): """Execute a command in a different directory. Because of win32 compatibility, we can't simply use subprocess. @@ -355,7 +360,10 @@ def system_in_directory (cmd, directory): current = os.getcwd() os.chdir (directory) - ly.system(cmd, be_verbose=global_options.verbose, + ly.system(cmd, + be_verbose=global_options.verbose, + redirect_output=global_options.redirect_output, + log_file=logfile, progress_p=1) os.chdir (current) @@ -374,10 +382,12 @@ def process_snippets (cmd, snippets, + list (set ([snip.basename() + '.ly' for snip in snippets]))) name = os.path.join (lily_output_dir, 'snippet-names-%d.ly' % checksum) + logfile = name.replace('.ly', '') file (name, 'wb').write (contents) system_in_directory (' '.join ([cmd, ly.mkarg (name)]), - lily_output_dir) + lily_output_dir, + logfile) def snippet_list_checksum (snippets):