summaryrefslogtreecommitdiff
path: root/bitbake
diff options
context:
space:
mode:
authorChris Larson <chris_larson@mentor.com>2010-12-06 21:06:13 -0700
committerRichard Purdie <rpurdie@linux.intel.com>2011-01-04 14:46:46 +0000
commit7ffd6f88b8b08e02665a3b29760e58c080322b44 (patch)
treee6abf2700e7cf5041763834d4e387c9d5f93120f /bitbake
parent7ea3c969386f10a37bd713326060e9bb4dbc1f1e (diff)
downloadopenembedded-core-7ffd6f88b8b08e02665a3b29760e58c080322b44.tar.gz
openembedded-core-7ffd6f88b8b08e02665a3b29760e58c080322b44.tar.bz2
openembedded-core-7ffd6f88b8b08e02665a3b29760e58c080322b44.zip
knotty: shift non-interactive progress into a class
(Bitbake rev: c3d005cbbae3d56da9926666cfb1501c2bf96ea7) Signed-off-by: Chris Larson <chris_larson@mentor.com> Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
Diffstat (limited to 'bitbake')
-rw-r--r--bitbake/lib/bb/ui/knotty.py48
1 files changed, 33 insertions, 15 deletions
diff --git a/bitbake/lib/bb/ui/knotty.py b/bitbake/lib/bb/ui/knotty.py
index 0c0cdf1fe7..00be2f8448 100644
--- a/bitbake/lib/bb/ui/knotty.py
+++ b/bitbake/lib/bb/ui/knotty.py
@@ -30,8 +30,32 @@ from bb import ui
from bb.ui import uihelper
logger = logging.getLogger("BitBake")
-widgets = ['Parsing recipes: ', progressbar.Percentage(), ' ',
- progressbar.Bar(), ' ', progressbar.ETA()]
+widgets = [progressbar.Percentage(), ' ', progressbar.Bar(), ' ',
+ progressbar.ETA()]
+
+class BBProgress(progressbar.ProgressBar):
+ def __init__(self, msg, maxval):
+ self.msg = msg
+ progressbar.ProgressBar.__init__(self, maxval, [self.msg + ": "] + widgets)
+
+class NonInteractiveProgress(object):
+ fobj = sys.stdout
+
+ def __init__(self, msg, maxval):
+ self.msg = msg
+ self.maxval = maxval
+
+ def start(self):
+ self.fobj.write("%s..." % self.msg)
+ self.fobj.flush()
+ return self
+
+ def update(self, value):
+ pass
+
+ def finish(self):
+ self.fobj.write("done.\n")
+ self.fobj.flush()
class BBLogFormatter(logging.Formatter):
"""Formatter which ensures that our 'plain' messages (logging.INFO + 1) are used as is"""
@@ -77,7 +101,7 @@ def init(server, eventHandler):
print("XMLRPC Fault getting commandline:\n %s" % x)
return 1
- pbar = None
+ parseprogress = None
interactive = os.isatty(sys.stdout.fileno())
shutdown = 0
return_value = 0
@@ -135,23 +159,17 @@ def init(server, eventHandler):
continue
if isinstance(event, bb.event.ParseStarted):
if interactive:
- pbar = progressbar.ProgressBar(widgets=widgets,
- maxval=event.total).start()
+ progress = BBProgress
else:
- sys.stdout.write("Parsing recipes...")
- sys.stdout.flush()
+ progress = NonInteractiveProgress
+ parseprogress = progress("Parsing recipes", event.total).start()
continue
if isinstance(event, bb.event.ParseProgress):
- if interactive:
- pbar.update(event.current)
+ parseprogress.update(event.current)
continue
if isinstance(event, bb.event.ParseCompleted):
- if interactive:
- pbar.update(pbar.maxval)
- else:
- sys.stdout.write("done.\n")
- sys.stdout.flush()
- print(("\nParsing of %d .bb files complete (%d cached, %d parsed). %d targets, %d skipped, %d masked, %d errors."
+ parseprogress.finish()
+ print(("Parsing of %d .bb files complete (%d cached, %d parsed). %d targets, %d skipped, %d masked, %d errors."
% ( event.total, event.cached, event.parsed, event.virtuals, event.skipped, event.masked, event.errors)))
continue