diff options
Diffstat (limited to 'build_files/scons/tools/btools.py')
-rw-r--r-- | build_files/scons/tools/btools.py | 17 |
1 files changed, 16 insertions, 1 deletions
diff --git a/build_files/scons/tools/btools.py b/build_files/scons/tools/btools.py index d22adfda5f6..83daef7c00b 100644 --- a/build_files/scons/tools/btools.py +++ b/build_files/scons/tools/btools.py @@ -14,6 +14,21 @@ import sys Variables = SCons.Variables BoolVariable = SCons.Variables.BoolVariable +def get_command_output(*popenargs, **kwargs): + if hasattr(subprocess, "check_output"): + return subprocess.check_output(*popenargs, **kwargs) + if 'stdout' in kwargs: + raise ValueError('stdout argument not allowed, it will be overridden.') + process = subprocess.Popen(stdout=subprocess.PIPE, *popenargs, **kwargs) + output, unused_err = process.communicate() + retcode = process.poll() + if retcode: + cmd = kwargs.get("args") + if cmd is None: + cmd = popenargs[0] + raise + return output + def get_version(): import re @@ -57,7 +72,7 @@ def get_version(): def get_hash(): try: - build_hash = subprocess.check_output(['git', 'rev-parse', '--short', 'HEAD']).strip() + build_hash = get_command_output(['git', 'rev-parse', '--short', 'HEAD']).strip() except OSError: build_hash = None print("WARNING: could not use git to retrieve current Blender repository hash...") |