diff options
Diffstat (limited to 'bitbake/lib/bb/ui/knotty.py')
-rw-r--r-- | bitbake/lib/bb/ui/knotty.py | 15 |
1 files changed, 8 insertions, 7 deletions
diff --git a/bitbake/lib/bb/ui/knotty.py b/bitbake/lib/bb/ui/knotty.py index b31a8a18e1..948f52769d 100644 --- a/bitbake/lib/bb/ui/knotty.py +++ b/bitbake/lib/bb/ui/knotty.py | |||
@@ -32,6 +32,7 @@ import fcntl | |||
32 | import struct | 32 | import struct |
33 | import copy | 33 | import copy |
34 | import atexit | 34 | import atexit |
35 | |||
35 | from bb.ui import uihelper | 36 | from bb.ui import uihelper |
36 | 37 | ||
37 | featureSet = [bb.cooker.CookerFeatures.SEND_SANITYEVENTS] | 38 | featureSet = [bb.cooker.CookerFeatures.SEND_SANITYEVENTS] |
@@ -40,7 +41,7 @@ logger = logging.getLogger("BitBake") | |||
40 | interactive = sys.stdout.isatty() | 41 | interactive = sys.stdout.isatty() |
41 | 42 | ||
42 | class BBProgress(progressbar.ProgressBar): | 43 | class BBProgress(progressbar.ProgressBar): |
43 | def __init__(self, msg, maxval, widgets=None, extrapos=-1): | 44 | def __init__(self, msg, maxval, widgets=None, extrapos=-1, resize_handler=None): |
44 | self.msg = msg | 45 | self.msg = msg |
45 | self.extrapos = extrapos | 46 | self.extrapos = extrapos |
46 | if not widgets: | 47 | if not widgets: |
@@ -48,10 +49,10 @@ class BBProgress(progressbar.ProgressBar): | |||
48 | progressbar.ETA()] | 49 | progressbar.ETA()] |
49 | self.extrapos = 4 | 50 | self.extrapos = 4 |
50 | 51 | ||
51 | try: | 52 | if resize_handler: |
53 | self._resize_default = resize_handler | ||
54 | else: | ||
52 | self._resize_default = signal.getsignal(signal.SIGWINCH) | 55 | self._resize_default = signal.getsignal(signal.SIGWINCH) |
53 | except: | ||
54 | self._resize_default = None | ||
55 | progressbar.ProgressBar.__init__(self, maxval, [self.msg + ": "] + widgets, fd=sys.stdout) | 56 | progressbar.ProgressBar.__init__(self, maxval, [self.msg + ": "] + widgets, fd=sys.stdout) |
56 | 57 | ||
57 | def _handle_resize(self, signum=None, frame=None): | 58 | def _handle_resize(self, signum=None, frame=None): |
@@ -247,10 +248,10 @@ class TerminalFilter(object): | |||
247 | start_time = activetasks[t].get("starttime", None) | 248 | start_time = activetasks[t].get("starttime", None) |
248 | if not pbar or pbar.bouncing != (progress < 0): | 249 | if not pbar or pbar.bouncing != (progress < 0): |
249 | if progress < 0: | 250 | if progress < 0: |
250 | pbar = BBProgress("0: %s (pid %s) " % (activetasks[t]["title"], t), 100, widgets=[progressbar.BouncingSlider(), ''], extrapos=2) | 251 | pbar = BBProgress("0: %s (pid %s) " % (activetasks[t]["title"], t), 100, widgets=[progressbar.BouncingSlider(), ''], extrapos=2, resize_handler=self.sigwinch_handle) |
251 | pbar.bouncing = True | 252 | pbar.bouncing = True |
252 | else: | 253 | else: |
253 | pbar = BBProgress("0: %s (pid %s) " % (activetasks[t]["title"], t), 100, widgets=[progressbar.Percentage(), ' ', progressbar.Bar(), ''], extrapos=4) | 254 | pbar = BBProgress("0: %s (pid %s) " % (activetasks[t]["title"], t), 100, widgets=[progressbar.Percentage(), ' ', progressbar.Bar(), ''], extrapos=4, resize_handler=self.sigwinch_handle) |
254 | pbar.bouncing = False | 255 | pbar.bouncing = False |
255 | activetasks[t]["progressbar"] = pbar | 256 | activetasks[t]["progressbar"] = pbar |
256 | tasks.append((pbar, progress, rate, start_time)) | 257 | tasks.append((pbar, progress, rate, start_time)) |
@@ -274,7 +275,7 @@ class TerminalFilter(object): | |||
274 | maxtask = self.helper.tasknumber_total | 275 | maxtask = self.helper.tasknumber_total |
275 | if not self.main_progress or self.main_progress.maxval != maxtask: | 276 | if not self.main_progress or self.main_progress.maxval != maxtask: |
276 | widgets = [' ', progressbar.Percentage(), ' ', progressbar.Bar()] | 277 | widgets = [' ', progressbar.Percentage(), ' ', progressbar.Bar()] |
277 | self.main_progress = BBProgress("Running tasks", maxtask, widgets=widgets) | 278 | self.main_progress = BBProgress("Running tasks", maxtask, widgets=widgets, resize_handler=self.sigwinch_handle) |
278 | self.main_progress.start(False) | 279 | self.main_progress.start(False) |
279 | self.main_progress.setmessage(content) | 280 | self.main_progress.setmessage(content) |
280 | progress = self.helper.tasknumber_current - 1 | 281 | progress = self.helper.tasknumber_current - 1 |