Simplify `run` utility. NFC (#1741)
- Use subprocess.call
- Use standard check=bool argument
diff --git a/emsdk.py b/emsdk.py
index 4455c76..930792f 100644
--- a/emsdk.py
+++ b/emsdk.py
@@ -475,13 +475,12 @@
return len(os.listdir(path)) != 0
-def run(cmd, cwd=None, quiet=False):
+def run(cmd, cwd=None, check=True):
debug_print(f'run(cmd={cmd}, cwd={cwd})')
- process = subprocess.Popen(cmd, cwd=cwd, env=os.environ.copy())
- process.communicate()
- if process.returncode != 0 and not quiet:
- errlog(f'{cmd} failed with error code {process.returncode}')
- return process.returncode
+ returncode = subprocess.call(cmd, cwd=cwd, env=os.environ.copy())
+ if returncode != 0 and check:
+ errlog(f'{cmd} failed with error code {returncode}')
+ return returncode
def untargz(source_filename, dest_dir):
@@ -800,7 +799,7 @@
if ret != 0:
return False
# Test if branch_or_tag is a branch, or if it is a tag that needs to be updated
- target_is_tag = run([GIT(), 'symbolic-ref', '-q', 'HEAD'], repo_path, quiet=True)
+ target_is_tag = run([GIT(), 'symbolic-ref', '-q', 'HEAD'], repo_path, check=False)
if target_is_tag:
ret = run([GIT(), 'checkout', '--recurse-submodules', '--quiet', branch_or_tag], repo_path)
@@ -816,7 +815,7 @@
ret = run([GIT(), 'merge', '--ff-only', remote_name + '/' + branch_or_tag], repo_path)
if ret != 0:
return False
- run([GIT(), 'submodule', 'update', '--init'], repo_path, quiet=True)
+ run([GIT(), 'submodule', 'update', '--init'], repo_path, check=False)
except Exception:
errlog('git operation failed!')
return False