diff options
-rw-r--r-- | bitbake/lib/bb/ui/knotty.py | 40 |
1 files changed, 18 insertions, 22 deletions
diff --git a/bitbake/lib/bb/ui/knotty.py b/bitbake/lib/bb/ui/knotty.py index 24b7a77085..826aa8c3e7 100644 --- a/bitbake/lib/bb/ui/knotty.py +++ b/bitbake/lib/bb/ui/knotty.py | |||
@@ -149,7 +149,7 @@ class TerminalFilter(object): | |||
149 | cr = (25, 80) | 149 | cr = (25, 80) |
150 | return cr | 150 | return cr |
151 | 151 | ||
152 | def __init__(self, main, helper, console, errconsole, quiet): | 152 | def __init__(self, main, helper, handlers, quiet): |
153 | self.main = main | 153 | self.main = main |
154 | self.helper = helper | 154 | self.helper = helper |
155 | self.cuu = None | 155 | self.cuu = None |
@@ -179,14 +179,9 @@ class TerminalFilter(object): | |||
179 | termios.tcsetattr(fd, termios.TCSADRAIN, new) | 179 | termios.tcsetattr(fd, termios.TCSADRAIN, new) |
180 | curses.setupterm() | 180 | curses.setupterm() |
181 | if curses.tigetnum("colors") > 2: | 181 | if curses.tigetnum("colors") > 2: |
182 | if console: | 182 | for h in handlers: |
183 | try: | 183 | try: |
184 | console.formatter.enable_color() | 184 | h.formatter.enable_color() |
185 | except AttributeError: | ||
186 | pass | ||
187 | if errconsole: | ||
188 | try: | ||
189 | errconsole.formatter.enable_color() | ||
190 | except AttributeError: | 185 | except AttributeError: |
191 | pass | 186 | pass |
192 | self.ed = curses.tigetstr("ed") | 187 | self.ed = curses.tigetstr("ed") |
@@ -204,10 +199,9 @@ class TerminalFilter(object): | |||
204 | self.interactive = False | 199 | self.interactive = False |
205 | bb.note("Unable to use interactive mode for this terminal, using fallback") | 200 | bb.note("Unable to use interactive mode for this terminal, using fallback") |
206 | return | 201 | return |
207 | if console: | 202 | |
208 | console.addFilter(InteractConsoleLogFilter(self)) | 203 | for h in handlers: |
209 | if errconsole: | 204 | h.addFilter(InteractConsoleLogFilter(self)) |
210 | errconsole.addFilter(InteractConsoleLogFilter(self)) | ||
211 | 205 | ||
212 | self.main_progress = None | 206 | self.main_progress = None |
213 | 207 | ||
@@ -411,6 +405,9 @@ def main(server, eventHandler, params, tf = TerminalFilter): | |||
411 | "level": console_loglevel, | 405 | "level": console_loglevel, |
412 | "stream": "ext://sys.stdout", | 406 | "stream": "ext://sys.stdout", |
413 | "filters": ["BitBake.stdoutFilter"], | 407 | "filters": ["BitBake.stdoutFilter"], |
408 | ".": { | ||
409 | "is_console": True, | ||
410 | }, | ||
414 | }, | 411 | }, |
415 | "BitBake.errconsole": { | 412 | "BitBake.errconsole": { |
416 | "class": "logging.StreamHandler", | 413 | "class": "logging.StreamHandler", |
@@ -418,6 +415,9 @@ def main(server, eventHandler, params, tf = TerminalFilter): | |||
418 | "level": loglevel, | 415 | "level": loglevel, |
419 | "stream": "ext://sys.stderr", | 416 | "stream": "ext://sys.stderr", |
420 | "filters": ["BitBake.stderrFilter"], | 417 | "filters": ["BitBake.stderrFilter"], |
418 | ".": { | ||
419 | "is_console": True, | ||
420 | }, | ||
421 | }, | 421 | }, |
422 | # This handler can be used if specific loggers should print on | 422 | # This handler can be used if specific loggers should print on |
423 | # the console at a lower severity than the default. It will | 423 | # the console at a lower severity than the default. It will |
@@ -430,6 +430,9 @@ def main(server, eventHandler, params, tf = TerminalFilter): | |||
430 | "level": 1, | 430 | "level": 1, |
431 | "stream": "ext://sys.stdout", | 431 | "stream": "ext://sys.stdout", |
432 | "filters": ["BitBake.verbconsoleFilter"], | 432 | "filters": ["BitBake.verbconsoleFilter"], |
433 | ".": { | ||
434 | "is_console": True, | ||
435 | }, | ||
433 | }, | 436 | }, |
434 | }, | 437 | }, |
435 | "formatters": { | 438 | "formatters": { |
@@ -523,7 +526,7 @@ def main(server, eventHandler, params, tf = TerminalFilter): | |||
523 | except OSError: | 526 | except OSError: |
524 | pass | 527 | pass |
525 | 528 | ||
526 | bb.msg.setLoggingConfig(logconfig, logconfigfile) | 529 | conf = bb.msg.setLoggingConfig(logconfig, logconfigfile) |
527 | 530 | ||
528 | if sys.stdin.isatty() and sys.stdout.isatty(): | 531 | if sys.stdin.isatty() and sys.stdout.isatty(): |
529 | log_exec_tty = True | 532 | log_exec_tty = True |
@@ -534,14 +537,7 @@ def main(server, eventHandler, params, tf = TerminalFilter): | |||
534 | 537 | ||
535 | # Look for the specially designated handlers which need to be passed to the | 538 | # Look for the specially designated handlers which need to be passed to the |
536 | # terminal handler | 539 | # terminal handler |
537 | console = None | 540 | console_handlers = [h for h in conf.config['handlers'].values() if getattr(h, 'is_console', False)] |
538 | errconsole = None | ||
539 | for h in logger.handlers: | ||
540 | name = getattr(h, '_name', None) | ||
541 | if name == 'BitBake.console': | ||
542 | console = h | ||
543 | elif name == 'BitBake.errconsole': | ||
544 | errconsole = h | ||
545 | 541 | ||
546 | bb.utils.set_process_name("KnottyUI") | 542 | bb.utils.set_process_name("KnottyUI") |
547 | 543 | ||
@@ -591,7 +587,7 @@ def main(server, eventHandler, params, tf = TerminalFilter): | |||
591 | printinterval = 5000 | 587 | printinterval = 5000 |
592 | lastprint = time.time() | 588 | lastprint = time.time() |
593 | 589 | ||
594 | termfilter = tf(main, helper, console, errconsole, params.options.quiet) | 590 | termfilter = tf(main, helper, console_handlers, params.options.quiet) |
595 | atexit.register(termfilter.finish) | 591 | atexit.register(termfilter.finish) |
596 | 592 | ||
597 | while True: | 593 | while True: |