mbedtls: catch errors, stop using os.system 49/24549/2
authorMats Wichmann <mats@linux.com>
Sun, 4 Feb 2018 15:54:06 +0000 (08:54 -0700)
committerMats Wichmann <mats@linux.com>
Fri, 20 Apr 2018 16:51:24 +0000 (16:51 +0000)
Change-Id: Id743749b817f4b345181c3ec96bad76b87f541fa
Signed-off-by: Mats Wichmann <mats@linux.com>
extlibs/mbedtls/SConscript

index b9ec6cf..846ea05 100644 (file)
@@ -56,7 +56,6 @@ os.chdir(mbedtls_dir)
 if os.path.exists('.git/HEAD'):
     out = subprocess.check_output('git tag -l ' + mbedtls_revision, shell=True).rstrip()
     if mbedtls_revision not in SCons.Util.to_String(out):
-        print(out)
         msg = '''
 *********************************** Error: ************************************
 * Your mbedTLS repo is not up to date with the version required by iotivity.
@@ -95,14 +94,16 @@ if not found:
         # Apply ocf patch on git revision
         print("Syncing/patching mbedtls external project...")
         cmd = 'git checkout -f development && git reset --hard ' + mbedtls_revision + ' && git clean -f && git apply --whitespace=fix ../ocf.patch'
-        res = os.system(cmd)
     else:
         # Fallback to regular patch command
         cmd = 'patch -p1 -l -f < ../ocf.patch'
-        res = os.system(cmd)
-    if 0 != res:
-        raise SCons.Errors.StopError(
-            'mbedtls: issue on applying patch: %d' % res)
+
+    try:
+        retcode = subprocess.call(cmd, shell=True)
+        if retcode:
+            Exit("mbedtls: sync failed: " + str(retcode))
+    except OSError as e:
+        Exit("mbedtls: execution failed: " + e)
 
 os.chdir(start_dir)