diff options
Diffstat (limited to 'tools/scripts')
-rw-r--r-- | tools/scripts/scm_version.py | 10 |
1 files changed, 7 insertions, 3 deletions
diff --git a/tools/scripts/scm_version.py b/tools/scripts/scm_version.py index 8bff3b4599..b4fa6a6966 100644 --- a/tools/scripts/scm_version.py +++ b/tools/scripts/scm_version.py @@ -1,7 +1,6 @@ import os import sys import subprocess -import traceback try: from setuptools_scm import get_version @@ -9,8 +8,13 @@ except ModuleNotFoundError: sys.stderr.write("Unable to import setuptools-scm, attempting to install now...\n") os.environ['PIP_DISABLE_PIP_VERSION_CHECK'] = '1' - subprocess.check_output([sys.executable, '-m', 'ensurepip']) - subprocess.check_output([sys.executable, '-m', 'pip', 'install', 'setuptools-scm']) + COMMANDS = ([sys.executable, '-m', 'ensurepip'], [sys.executable, '-m', 'pip', 'install', 'setuptools-scm']) + for cmd in COMMANDS: + # capture_output because we only want to print version to stdout if successful + result = subprocess.run(cmd, capture_output=True) + if result.returncode: + # failed, we have no version, so print output so that users can debug + raise Exception(f'\nCommand `{" ".join(cmd)}` failed (rc={result.returncode}).\n\nstdout:\n{result.stdout}\n\nstderr:\n{result.stderr}') from setuptools_scm import get_version |