aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rwxr-xr-xbench.py6
-rwxr-xr-xmerge.py6
-rw-r--r--src/util.py23
-rwxr-xr-xsummarize.py6
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 <http://gnu.org/licenses/gpl.html>")
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='+')