aboutsummaryrefslogtreecommitdiffstats
path: root/lib/bb
diff options
context:
space:
mode:
authorRichard Purdie <richard.purdie@linuxfoundation.org>2022-03-06 13:28:48 +0000
committerRichard Purdie <richard.purdie@linuxfoundation.org>2022-03-06 17:38:24 +0000
commit8eeccf73185d986c6abd6426b1d1e72da3a982df (patch)
tree959ab64f76a9ffbd09a5aad21d117ed416896a7c /lib/bb
parent1b026644c3312aa3e0a01cfa31758963926b091a (diff)
downloadbitbake-8eeccf73185d986c6abd6426b1d1e72da3a982df.tar.gz
knotty: Correctly handle multiple line items
Currently the footer code doesn't quite handle multiline items correct. Fix this to do so. Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Diffstat (limited to 'lib/bb')
-rw-r--r--lib/bb/ui/knotty.py12
1 files changed, 9 insertions, 3 deletions
diff --git a/lib/bb/ui/knotty.py b/lib/bb/ui/knotty.py
index 528b8a076..1bcdc0023 100644
--- a/lib/bb/ui/knotty.py
+++ b/lib/bb/ui/knotty.py
@@ -292,9 +292,9 @@ class TerminalFilter(object):
progress = 0
content = self.main_progress.update(progress)
print('')
- lines = 1 + int(len(content) / (self.columns + 1))
+ lines = self.getlines(content)
if self.quiet == 0:
- for tasknum, task in enumerate(tasks[:(self.rows - 2)]):
+ for tasknum, task in enumerate(tasks[:(self.rows - 1 - lines)]):
if isinstance(task, tuple):
pbar, progress, rate, start_time = task
if not pbar.start_time:
@@ -311,11 +311,17 @@ class TerminalFilter(object):
else:
content = "%s: %s" % (tasknum, task)
print(content)
- lines = lines + 1 + int(len(content) / (self.columns + 1))
+ lines = lines + self.getlines(content)
self.footer_present = lines
self.lastpids = runningpids[:]
self.lastcount = self.helper.tasknumber_current
+ def getlines(self, content):
+ lines = 0
+ for line in content.split("\n"):
+ lines = lines + 1 + int(len(line) / (self.columns + 1))
+ return lines
+
def finish(self):
if self.stdinbackup:
fd = sys.stdin.fileno()