You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@subversion.apache.org by da...@apache.org on 2017/12/30 01:23:49 UTC

svn commit: r1819556 - in /subversion/trunk/build/generator: swig/__init__.py swig/checkout_swig_header.py swig/external_runtime.py util/executable.py

Author: danielsh
Date: Sat Dec 30 01:23:49 2017
New Revision: 1819556

URL: http://svn.apache.org/viewvc?rev=1819556&view=rev
Log:
Improve external command invocation in the swig parts of the build system.
Both gen-make.py and 'make swig-py' are affected.

Developer-visible change: failure modes of the build system should be better.

* build/generator/util/executable.py: Remove.
  (exists, find): Unused.
  (output): Callers updated to use check_output(), which raises on non-zero
    exit code.  Note that no caller passed a string argument and doing so
    would not have worked, since shell=True wasn't being passed to Popen().
  (run): Callers updated to use subprocess.check_call() directly, which is
    equivalent (with shell=True) or better (with shell=False, which is the
    default).

* build/generator/swig/__init__.py
  (subprocess): Import.
  (_exec): Remove import.
  (): All callers updated.

* build/generator/swig/checkout_swig_header.py
  (subprocess): Import.
  (run): Remove import.
  (): All callers updated.

* build/generator/swig/external_runtime.py
  (subprocess): Import.
  (_exec, generator.util.executable): Remove import.
  (): All callers updated.

Removed:
    subversion/trunk/build/generator/util/executable.py
Modified:
    subversion/trunk/build/generator/swig/__init__.py
    subversion/trunk/build/generator/swig/checkout_swig_header.py
    subversion/trunk/build/generator/swig/external_runtime.py

Modified: subversion/trunk/build/generator/swig/__init__.py
URL: http://svn.apache.org/viewvc/subversion/trunk/build/generator/swig/__init__.py?rev=1819556&r1=1819555&r2=1819556&view=diff
==============================================================================
--- subversion/trunk/build/generator/swig/__init__.py (original)
+++ subversion/trunk/build/generator/swig/__init__.py Sat Dec 30 01:23:49 2017
@@ -25,7 +25,7 @@
 import os
 import re
 import shutil
-import generator.util.executable as _exec
+import subprocess
 from generator.gen_base import _collect_paths
 try:
   # Python >=3.0
@@ -59,14 +59,14 @@ class Generator:
 
     # Calculate SWIG paths
     self.swig_path = swig_path
-    self.swig_libdir = _exec.output([self.swig_path, "-swiglib"], strip=1)
+    self.swig_libdir = subprocess.check_output([self.swig_path, "-swiglib"]).strip()
 
   _swigVersion = None
   def version(self):
     """Get the version number of SWIG"""
 
     if not self._swigVersion:
-      swig_version = _exec.output([self.swig_path, "-version"])
+      swig_version = subprocess.check_output([self.swig_path, "-version"])
       m = re.search("Version (\d+).(\d+).(\d+)", swig_version)
       if m:
         self._swigVersion = tuple(map(int, m.groups()))

Modified: subversion/trunk/build/generator/swig/checkout_swig_header.py
URL: http://svn.apache.org/viewvc/subversion/trunk/build/generator/swig/checkout_swig_header.py?rev=1819556&r1=1819555&r2=1819556&view=diff
==============================================================================
--- subversion/trunk/build/generator/swig/checkout_swig_header.py (original)
+++ subversion/trunk/build/generator/swig/checkout_swig_header.py Sat Dec 30 01:23:49 2017
@@ -23,13 +23,12 @@
 # Checkout files from the SWIG library into Subversion's proxy directory
 #
 
-import sys, os, re, fileinput, shutil
+import sys, os, re, fileinput, shutil, subprocess
 if __name__ == "__main__":
   parent_dir = os.path.dirname(os.path.abspath(os.path.dirname(sys.argv[0])))
   sys.path[0:0] = [ parent_dir, os.path.dirname(parent_dir) ]
 import generator.swig
 from gen_base import build_path_splitfile, build_path_join
-from generator.util.executable import run
 
 class Generator(generator.swig.Generator):
 
@@ -63,7 +62,7 @@ class Generator(generator.swig.Generator
     elif self.version() == (1, 3, 24):
       shutil.copy(build_path_join(self.swig_libdir, path), out)
     else:
-      run("%s -o %s -co %s" % (self.swig_path, out, path))
+      subprocess.check_call([self.swig_path, "-o", out, "-co", path])
 
   def _skip_checkout(self, path):
     """Should we skip this checkout?"""

Modified: subversion/trunk/build/generator/swig/external_runtime.py
URL: http://svn.apache.org/viewvc/subversion/trunk/build/generator/swig/external_runtime.py?rev=1819556&r1=1819555&r2=1819556&view=diff
==============================================================================
--- subversion/trunk/build/generator/swig/external_runtime.py (original)
+++ subversion/trunk/build/generator/swig/external_runtime.py Sat Dec 30 01:23:49 2017
@@ -29,13 +29,12 @@ import os
 import re
 import fileinput
 import filecmp
+import subprocess
 
 if __name__ == "__main__":
   parent_dir = os.path.dirname(os.path.abspath(os.path.dirname(sys.argv[0])))
   sys.path[0:0] = [ parent_dir, os.path.dirname(parent_dir) ]
 import generator.swig
-import generator.util.executable
-_exec = generator.util.executable
 
 class Generator(generator.swig.Generator):
   """Generate external runtime files for SWIG"""
@@ -82,7 +81,7 @@ class Generator(generator.swig.Generator
         out_file.write(open("%s/runtime.swg" % self.proxy_dir).read())
       out_file.close()
     else:
-      _exec.run("%s -%s -external-runtime %s" % (self.swig_path, lang, out))
+      subprocess.check_call([self.swig_path, "-"+lang, "-external-runtime", out])
 
     # SWIG 1.3.24-27 should include rubyhead.swg in their
     # external runtime, but they don't.