diff options
Diffstat (limited to 'debuginfo-tests/dexter/dex/utils/Version.py')
-rw-r--r-- | debuginfo-tests/dexter/dex/utils/Version.py | 40 |
1 files changed, 40 insertions, 0 deletions
diff --git a/debuginfo-tests/dexter/dex/utils/Version.py b/debuginfo-tests/dexter/dex/utils/Version.py new file mode 100644 index 00000000000..1a257fa7107 --- /dev/null +++ b/debuginfo-tests/dexter/dex/utils/Version.py @@ -0,0 +1,40 @@ +# DExTer : Debugging Experience Tester +# ~~~~~~ ~ ~~ ~ ~~ +# +# Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. +# See https://llvm.org/LICENSE.txt for license information. +# SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception +"""DExTer version output.""" + +import os +from subprocess import CalledProcessError, check_output, STDOUT +import sys + +from dex import __version__ + + +def _git_version(): + dir_ = os.path.dirname(__file__) + try: + branch = (check_output( + ['git', 'rev-parse', '--abbrev-ref', 'HEAD'], + stderr=STDOUT, + cwd=dir_).rstrip().decode('utf-8')) + hash_ = check_output( + ['git', 'rev-parse', 'HEAD'], stderr=STDOUT, + cwd=dir_).rstrip().decode('utf-8') + repo = check_output( + ['git', 'remote', 'get-url', 'origin'], stderr=STDOUT, + cwd=dir_).rstrip().decode('utf-8') + return '[{} {}] ({})'.format(branch, hash_, repo) + except (OSError, CalledProcessError): + pass + return None + + +def version(name): + lines = [] + lines.append(' '.join( + [s for s in [name, __version__, _git_version()] if s])) + lines.append(' using Python {}'.format(sys.version)) + return '\n'.join(lines) |