summaryrefslogtreecommitdiff
path: root/Doc/tools
diff options
context:
space:
mode:
authorFred Drake <fdrake@acm.org>2001-02-04 15:20:26 +0000
committerFred Drake <fdrake@acm.org>2001-02-04 15:20:26 +0000
commit05afbbcaa1019d8d75a754b59c9862eac4445cda (patch)
tree32181fdb2cdc5f2e4071a72f6b8d00dfa43b05b4 /Doc/tools
parentb9a7dc5b08e4cb2242a23da0e12b7bba16930f88 (diff)
downloadcpython-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-xDoc/tools/mkhowto19
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: