]> granicus.if.org Git - python/commitdiff
Do more to be compatible with Windows/CygWin. Make error messages more
authorFred Drake <fdrake@acm.org>
Fri, 10 Aug 2001 20:17:09 +0000 (20:17 +0000)
committerFred Drake <fdrake@acm.org>
Fri, 10 Aug 2001 20:17:09 +0000 (20:17 +0000)
informative when a child process dies with an error.

This is a variation of parts of SF patch #429611.

Doc/tools/mkhowto

index 0d5d687e2981136a6e287fff4049a434ce5cca49..0e211d92967dd4c654dc6a36795cc38f99f06330 100755 (executable)
@@ -180,6 +180,8 @@ class Options:
             elif opt == "--global-module-index":
                 self.global_module_index = arg
             elif opt == "--dir":
+                if os.sep == "\\":
+                    arg = re.sub("/", "\\", arg)
                 self.builddir = arg
             elif opt == "--paper":
                 self.paper = arg
@@ -475,12 +477,22 @@ class Job:
 
     def run(self, command):
         self.message(command)
-        rc = os.system("(%s) </dev/null >>%s 2>&1"
-                       % (command, self.log_filename))
+        if sys.platform.startswith("win"):
+            rc = os.system(command)
+        else:
+            rc = os.system("(%s) </dev/null >>%s 2>&1"
+                           % (command, self.log_filename))
         if rc:
             self.warning(
                 "Session transcript and error messages are in %s."
                 % self.log_filename)
+            if hasattr(os, "WIFEXITED"):
+                if os.WIFEXITED(rc):
+                    self.warning("Exited with status %s." % os.WEXITSTATUS(rc))
+                else:
+                    self.warning("Killed by signal %s." % os.WSTOPSIG(rc))
+            else:
+                self.warning("Return code: %s" % rc)
             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))