From 4e3f2752c5af235eada6df979e35941dad4574f0 Mon Sep 17 00:00:00 2001 From: Fred Drake Date: Sun, 4 Feb 2001 15:20:26 +0000 Subject: Improve diagnostic output when an external command returns a non-zero exit code, showing the transcript for that command. This closes SF bug #129740. --- Doc/tools/mkhowto | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/Doc/tools/mkhowto b/Doc/tools/mkhowto index d326a09..28f18b6 100755 --- a/Doc/tools/mkhowto +++ b/Doc/tools/mkhowto @@ -442,6 +442,9 @@ class Job: self.warning( "Session transcript and error messages are in %s." % self.log_filename) + sys.stderr.write("The relevant lines from the transcript are:\n") + sys.stderr.write("-" * 72 + "\n") + sys.stderr.writelines(get_run_transcript(self.log_filename)) sys.exit(rc) def message(self, msg): @@ -461,7 +464,23 @@ class Job: fp.close() +def get_run_transcript(filename): + """Return lines from the transcript file for the most recent run() call.""" + fp = open(filename) + lines = fp.readlines() + fp.close() + lines.reverse() + L = [] + for line in lines: + L.append(line) + if line[:4] == "+++ ": + break + L.reverse() + return L + + def safe_unlink(path): + """Unlink a file without raising an error if it doesn't exist.""" try: os.unlink(path) except os.error: -- cgit v0.12