Use run_get_output helper instead of subprocess.check_output (#1782)
The former is just a small wrapper around the laters.
Also, use check_call rather than check_output for `npm ci` run. Note
that this is not normally run for newer SDKs that ship node_modules, its
just for legacy SDKs. Better to just show the output here rather than
capturing it .
diff --git a/emsdk.py b/emsdk.py
index e00005c..9fda3a2 100644
--- a/emsdk.py
+++ b/emsdk.py
@@ -255,7 +255,7 @@
try:
# The "-products *" allows detection of Build Tools, the "-prerelease" allows detection of Preview version
# of Visual Studio and Build Tools.
- stdout = subprocess.check_output([vswhere_path, '-latest', '-products', '*', '-prerelease', '-version', '[%s.0,%s.0)' % (version, version + 1), '-requires', 'Microsoft.VisualStudio.Component.VC.Tools.' + tools_arch, '-property', 'installationPath', '-format', 'json'])
+ stdout = run_get_output([vswhere_path, '-latest', '-products', '*', '-prerelease', '-version', '[%s.0,%s.0)' % (version, version + 1), '-requires', 'Microsoft.VisualStudio.Component.VC.Tools.' + tools_arch, '-property', 'installationPath', '-format', 'json'])
json_output = json.loads(stdout)
return str(json_output[0]['installationPath'])
except Exception:
@@ -762,7 +762,7 @@
def get_git_remotes(repo_path):
remotes = []
- output = subprocess.check_output([GIT(), 'remote', '-v'], stderr=subprocess.STDOUT, text=True, cwd=repo_path)
+ output = run_get_output([GIT(), 'remote', '-v'], cwd=repo_path)
for line in output.splitlines():
remotes += [line.split()[0]]
return remotes
@@ -1024,7 +1024,7 @@
def xcode_sdk_version():
try:
- output = subprocess.check_output(['xcrun', '--show-sdk-version'], text=True)
+ output = run_get_output(['xcrun', '--show-sdk-version'])
return output.strip().split('.')
except Exception:
return subprocess.checkplatform.mac_ver()[0].split('.')
@@ -1431,11 +1431,9 @@
npm = os.path.join(node_path, 'npm' + ('.cmd' if WINDOWS else ''))
print('Running post-install step: npm ci ...')
try:
- subprocess.check_output(
- [npm, 'ci', '--production'],
- cwd=directory, stderr=subprocess.STDOUT, env=env, text=True)
+ subprocess.check_call([npm, 'ci', '--production'], cwd=directory, env=env)
except subprocess.CalledProcessError as e:
- errlog('Error running %s:\n%s' % (e.cmd, e.output))
+ errlog(f'Error running {e.cmd}')
return False
print('Done running: npm ci')