summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--bitbake/lib/bb/ui/knotty.py40
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: