diff options
author | Fred Drake <fdrake@acm.org> | 2001-02-04 15:20:26 +0000 |
---|---|---|
committer | Fred Drake <fdrake@acm.org> | 2001-02-04 15:20:26 +0000 |
commit | 05afbbcaa1019d8d75a754b59c9862eac4445cda (patch) | |
tree | 32181fdb2cdc5f2e4071a72f6b8d00dfa43b05b4 /Doc/tools | |
parent | b9a7dc5b08e4cb2242a23da0e12b7bba16930f88 (diff) | |
download | cpython-05afbbcaa1019d8d75a754b59c9862eac4445cda.tar.gz |
Improve diagnostic output when an external command returns a non-zero exit
code, showing the transcript for that command.
This closes SF bug #129740.
Diffstat (limited to 'Doc/tools')
-rwxr-xr-x | Doc/tools/mkhowto | 19 |
1 files changed, 19 insertions, 0 deletions
diff --git a/Doc/tools/mkhowto b/Doc/tools/mkhowto index d326a0940b..28f18b6950 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: |