@@ -791,7 +791,12 @@ def main(server, eventHandler, params, tf = TerminalFilter):
event.msg = taskinfo['title'] + ': ' + event.msg
if hasattr(event, 'fn') and event.levelno not in [bb.msg.BBLogFormatter.WARNONCE, bb.msg.BBLogFormatter.ERRORONCE]:
event.msg = event.fn + ': ' + event.msg
+ # Need to remove any progress bar, then add it back after we print this message
+ if parseprogress:
+ parseprogress.clear()
logging.getLogger(event.name).handle(event)
+ if parseprogress:
+ parseprogress.update(parseprogress.currval)
continue
if isinstance(event, bb.build.TaskFailedSilent):
@@ -278,6 +278,9 @@ class ProgressBar(object):
self.last_update_time = now
return output
+ def clear(self):
+ self.fd.write(" " * self.term_width + '\r')
+ self.fd.flush()
def start(self, update=True):
"""Starts measuring time, and prints the bar at 0%.
If we try and print a log message in the middle of progress bar, the display can be corrupted. Add a clear() method to progress bars allowing them to be removed for the log message, then reprinted using update(). Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org> --- lib/bb/ui/knotty.py | 5 +++++ lib/progressbar/progressbar.py | 3 +++ 2 files changed, 8 insertions(+)