aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorBjörn B. Brandenburg <bbb@cs.unc.edu>2010-05-25 15:26:08 -0400
committerBjörn B. Brandenburg <bbb@cs.unc.edu>2010-05-25 15:26:08 -0400
commit473e87dba9e01cd4439d179603da7dec4aa32a63 (patch)
tree8ec91eaff6914d7197a86440140ec6191e6936ee
parentcff6fda4e6acfd3978702618160a055981f09f97 (diff)
Support optionally saving the produced script.
Useful for last-minute hand-tweaks.
-rwxr-xr-xplot.py20
1 files changed, 15 insertions, 5 deletions
diff --git a/plot.py b/plot.py
index f9039c9..b961c6d 100755
--- a/plot.py
+++ b/plot.py
@@ -14,6 +14,7 @@ options = [
14 o(None, '--column', action='store_true', dest='column'), 14 o(None, '--column', action='store_true', dest='column'),
15 o(None, '--split', action='store_true', dest='split'), 15 o(None, '--split', action='store_true', dest='split'),
16 o(None, '--alternate', action='store_true', dest='alternate'), 16 o(None, '--alternate', action='store_true', dest='alternate'),
17 o(None, '--save-script', action='store_true', dest='save_script'),
17 ] 18 ]
18 19
19defaults = { 20defaults = {
@@ -30,6 +31,7 @@ defaults = {
30 'wide' : False, 31 'wide' : False,
31 'alternate' : False, 32 'alternate' : False,
32 'column' : False, 33 'column' : False,
34 'save_script' : False,
33 } 35 }
34 36
35def decode(name): 37def decode(name):
@@ -42,12 +44,15 @@ def decode(name):
42 params[k] = v 44 params[k] = v
43 return params 45 return params
44 46
45def get_data_tmpfile(datafile): 47def get_data_tmpfile(datafile, target=None):
46 """Removes all comments form datafile, stores result in a temp file. 48 """Removes all comments form datafile, stores result in a temp file.
47 The temp file is returned.""" 49 The temp file is returned."""
48 count = 0 50 count = 0
49 f = open(datafile, 'r') 51 f = open(datafile, 'r')
50 d = Tmp() 52 if target:
53 d = open(target, 'w')
54 else:
55 d = Tmp()
51 for line in f: 56 for line in f:
52 if len(line) > 1 and line[0] != '#': 57 if len(line) > 1 and line[0] != '#':
53 d.write(line) 58 d.write(line)
@@ -288,8 +293,10 @@ class SchedPlotter(defapp.App):
288 if not self.options.paper: 293 if not self.options.paper:
289 p.title = 'Interrupt accounting under G-EDF: utilization ' + p.title 294 p.title = 'Interrupt accounting under G-EDF: utilization ' + p.title
290 295
291# print str(p.gnuplot_commands()) 296 if self.options.save_script:
292 p.gnuplot_exec() 297 p.gnuplot_save(p.output + '.plot')
298 else:
299 p.gnuplot_exec()
293 300
294 def plot_rtss09(self, tmpfile, name, conf): 301 def plot_rtss09(self, tmpfile, name, conf):
295 title = scenario_heading(conf, want_period=True) 302 title = scenario_heading(conf, want_period=True)
@@ -402,7 +409,10 @@ class SchedPlotter(defapp.App):
402 % bname) 409 % bname)
403 conf = decode(name) 410 conf = decode(name)
404 try: 411 try:
405 tmpfile = get_data_tmpfile(datafile) 412 if self.options.save_script:
413 tmpfile = get_data_tmpfile(datafile, target = "%s.data" % name )
414 else:
415 tmpfile = get_data_tmpfile(datafile)
406 except IOError: 416 except IOError:
407 tmpfile = None 417 tmpfile = None
408 if tmpfile: 418 if tmpfile: