From 52c50b7299efb2050794ac589902af325156f7c3 Mon Sep 17 00:00:00 2001 From: Florian Fischer Date: Fri, 30 Aug 2019 13:57:05 +0200 Subject: add --version flag to executables --- bench.py | 6 +++++- merge.py | 6 +++++- src/util.py | 23 +++++++++++++++++++++++ summarize.py | 6 +++++- 4 files changed, 38 insertions(+), 3 deletions(-) diff --git a/bench.py b/bench.py index a34e53e..5144459 100755 --- a/bench.py +++ b/bench.py @@ -36,7 +36,7 @@ import src.globalvars from src.util import find_cmd from src.util import print_status, print_warn, print_error from src.util import print_info, print_info2, print_debug -from src.util import print_license_and_exit +from src.util import print_license_and_exit, print_version_and_exit def epilog(): @@ -83,11 +83,15 @@ def main(): default=["all"]) parser.add_argument("-rd", "--resultdir", help="directory where all results go", type=str) parser.add_argument("--license", help="print license info and exit", action='store_true') + parser.add_argument("--version", help="print version info and exit", action='store_true') args = parser.parse_args() if args.license: print_license_and_exit() + if args.version: + print_version_and_exit() + atexit.register(epilog) # Set global verbosity diff --git a/merge.py b/merge.py index 3b93499..a8b2afb 100755 --- a/merge.py +++ b/merge.py @@ -24,17 +24,21 @@ import os import pickle import sys -from src.util import print_license_and_exit +from src.util import print_license_and_exit, print_version_and_exit def main(): if "--license" in sys.argv: print_license_and_exit() + if "--version" in sys.argv: + print_version_and_exit() + parser = argparse.ArgumentParser(description="Merge to allocbench results") parser.add_argument("src", help="results which should be merged into dest", type=str) parser.add_argument("dest", help="results in which src should be merged", type=str) parser.add_argument("--license", help="print license info and exit", action='store_true') + parser.add_argument("--version", help="print version info and exit", action='store_true') parser.add_argument("-b", "--benchmarks", help="benchmarks to summarize", nargs='+') parser.add_argument("-x", "--exclude-benchmarks", help="benchmarks to exclude", nargs='+') diff --git a/src/util.py b/src/util.py index 9941d6f..6ec984a 100644 --- a/src/util.py +++ b/src/util.py @@ -145,3 +145,26 @@ def print_license_and_exit(): print("Copyright (C) 2018-2019 Florian Fischer") print("License GPLv3: GNU GPL version 3 ") exit(0) + + +def print_version_and_exit(): + """Print current commit info before exit""" + proc = subprocess.run(["git", "rev-parse", "HEAD"], + universal_newlines=True, stdout=subprocess.PIPE) + + if proc.returncode != 0: + print_error("git rev-parse failed") + exit(1) + commit = proc.stdout[:-1] + + proc = subprocess.run(["git", "status", "--porcelain"], + universal_newlines=True, stdout=subprocess.PIPE) + + if proc.returncode != 0: + print_error("git status --porcelain failed") + exit(1) + + dirty = "-dirty" if proc.stdout != "" else "" + + print(f"{commit}{dirty}") + exit(0) diff --git a/summarize.py b/summarize.py index e467648..0d12512 100755 --- a/summarize.py +++ b/summarize.py @@ -27,7 +27,7 @@ import sys import src.globalvars from src.util import print_status, print_debug, print_error -from src.util import print_license_and_exit +from src.util import print_license_and_exit, print_version_and_exit def specific_summary(bench, sum_dir, allocators): @@ -94,9 +94,13 @@ def main(): if "--license" in sys.argv: print_license_and_exit() + if "--version" in sys.argv: + print_version_and_exit() + parser = argparse.ArgumentParser(description="Summarize allocbench results in allocator sets") parser.add_argument("results", help="path to results", type=str) parser.add_argument("--license", help="print license info and exit", action='store_true') + parser.add_argument("--versiob", help="print version info and exit", action='store_true') parser.add_argument("-b", "--benchmarks", help="benchmarks to summarize", nargs='+') parser.add_argument("-x", "--exclude-benchmarks", help="benchmarks to exclude", nargs='+') -- cgit v1.2.3