summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLars Wirzenius <liw@liw.fi>2016-02-19 20:26:02 +0200
committerLars Wirzenius <liw@liw.fi>2016-02-19 20:26:02 +0200
commit194ea7b405ade47589b30e3e16ef5c3bacdbb893 (patch)
tree9cec3032962325e994858a9eae0f3cc0a67e3b34
parent3f7678f620892fcf8d6563489bbde68a14888aff (diff)
downloadobnam-benchmarks-194ea7b405ade47589b30e3e16ef5c3bacdbb893.tar.gz
Add --publish-command
-rw-r--r--NEWS2
-rwxr-xr-xobbench11
2 files changed, 13 insertions, 0 deletions
diff --git a/NEWS b/NEWS
index 17316b4..bd33d79 100644
--- a/NEWS
+++ b/NEWS
@@ -4,6 +4,8 @@ NEWS file for obbench
Version 0.11+git, not yet released
----------------------------------
+* Added the `--publish-command` setting, to allow a command to be run
+ to publish results after a successful run.
Version 0.11, released 2016-02-14
----------------------------------
diff --git a/obbench b/obbench
index 2c66c1a..9172457 100755
--- a/obbench
+++ b/obbench
@@ -34,6 +34,10 @@ class ObnamBenchmarker(cliapp.Application):
'keep state in DIR between runs',
metavar='DIR',
default='.')
+ self.settings.string(
+ ['publish-command'],
+ 'after a successful run, run COMMAND',
+ metavar='COMMAND')
def process_args(self, args):
spec = self.read_benchmark_spec(args[0])
@@ -41,6 +45,7 @@ class ObnamBenchmarker(cliapp.Application):
self.clone_or_update_git(statedir, spec)
self.run_benchmarks(statedir, spec, args[1:])
self.produce_html(statedir, spec)
+ self.publish(statedir)
def read_benchmark_spec(self, filename):
with open(filename) as f:
@@ -85,6 +90,12 @@ class ObnamBenchmarker(cliapp.Application):
gen.spec = spec
gen.generate_html()
+ def publish(self, statedir):
+ command = self.settings['publish-command']
+ if command:
+ print 'Publishing using {}'.format(command)
+ cliapp.runcmd(['sh', '-c', command], cwd=statedir)
+
if __name__ == '__main__':
ObnamBenchmarker(version=obbenchlib.__version__).run()