From 23a551bea12077f0e0320e19e7a587c409949511 Mon Sep 17 00:00:00 2001 From: Paul Eggleton Date: Sat, 23 Jul 2016 00:18:37 +1200 Subject: [PATCH] bitbake: knotty: fix some minor bugs in BBProgress If you specify custom widgets then we don't want to assume where the "extra" position is - you should have to specify it, and if it isn't specified it shouldn't just wipe out the last widget or you can start to see odd behaviour if you're modifying the code. (Bitbake rev: 19e33c10feb1637589ceb05b5e8d58b1e012ccb8) Signed-off-by: Paul Eggleton Signed-off-by: Richard Purdie --- bitbake/lib/bb/ui/knotty.py | 25 +++++++++++++------------ 1 file changed, 13 insertions(+), 12 deletions(-) diff --git a/bitbake/lib/bb/ui/knotty.py b/bitbake/lib/bb/ui/knotty.py index e8e169fe67..b92334b02d 100644 --- a/bitbake/lib/bb/ui/knotty.py +++ b/bitbake/lib/bb/ui/knotty.py @@ -40,9 +40,9 @@ logger = logging.getLogger("BitBake") interactive = sys.stdout.isatty() class BBProgress(progressbar.ProgressBar): - def __init__(self, msg, maxval, widgets=None): + def __init__(self, msg, maxval, widgets=None, extrapos=-1): self.msg = msg - self.extrapos = -1 + self.extrapos = extrapos if not widgets: widgets = [progressbar.Percentage(), ' ', progressbar.Bar(), ' ', progressbar.ETA()] @@ -69,15 +69,16 @@ class BBProgress(progressbar.ProgressBar): self.widgets[0] = msg def setextra(self, extra): - if extra: - extrastr = str(extra) - if extrastr[0] != ' ': - extrastr = ' ' + extrastr - if extrastr[-1] != ' ': - extrastr += ' ' - else: - extrastr = ' ' - self.widgets[self.extrapos] = extrastr + if self.extrapos > -1: + if extra: + extrastr = str(extra) + if extrastr[0] != ' ': + extrastr = ' ' + extrastr + if extrastr[-1] != ' ': + extrastr += ' ' + else: + extrastr = ' ' + self.widgets[self.extrapos] = extrastr def _need_update(self): # We always want the bar to print when update() is called @@ -241,7 +242,7 @@ class TerminalFilter(object): start_time = activetasks[t].get("starttime", None) if not pbar or pbar.bouncing != (progress < 0): if progress < 0: - pbar = BBProgress("0: %s (pid %s) " % (activetasks[t]["title"], t), 100, widgets=[progressbar.BouncingSlider()]) + pbar = BBProgress("0: %s (pid %s) " % (activetasks[t]["title"], t), 100, widgets=[progressbar.BouncingSlider(), ''], extrapos=2) pbar.bouncing = True else: pbar = BBProgress("0: %s (pid %s) " % (activetasks[t]["title"], t), 100)