diff options
| -rwxr-xr-x | bitbake/lib/bb/main.py | 9 | ||||
| -rw-r--r-- | bitbake/lib/bb/msg.py | 5 | ||||
| -rw-r--r-- | bitbake/lib/bb/ui/knotty.py | 57 |
3 files changed, 45 insertions, 26 deletions
diff --git a/bitbake/lib/bb/main.py b/bitbake/lib/bb/main.py index 283f29bb15..3fc3ff51e2 100755 --- a/bitbake/lib/bb/main.py +++ b/bitbake/lib/bb/main.py | |||
| @@ -179,6 +179,9 @@ class BitBakeConfigParameters(cookerdata.ConfigParameters): | |||
| 179 | parser.add_option("-D", "--debug", action="count", dest="debug", default=0, | 179 | parser.add_option("-D", "--debug", action="count", dest="debug", default=0, |
| 180 | help="Increase the debug level. You can specify this more than once.") | 180 | help="Increase the debug level. You can specify this more than once.") |
| 181 | 181 | ||
| 182 | parser.add_option("-q", "--quiet", action="store_true", dest="quiet", default=False, | ||
| 183 | help="Output less log message data to the terminal.") | ||
| 184 | |||
| 182 | parser.add_option("-n", "--dry-run", action="store_true", dest="dry_run", default=False, | 185 | parser.add_option("-n", "--dry-run", action="store_true", dest="dry_run", default=False, |
| 183 | help="Don't execute, just go through the motions.") | 186 | help="Don't execute, just go through the motions.") |
| 184 | 187 | ||
| @@ -279,6 +282,12 @@ class BitBakeConfigParameters(cookerdata.ConfigParameters): | |||
| 279 | 282 | ||
| 280 | options, targets = parser.parse_args(argv) | 283 | options, targets = parser.parse_args(argv) |
| 281 | 284 | ||
| 285 | if options.quiet and options.verbose: | ||
| 286 | parser.error("options --quiet and --verbose are mutually exclusive") | ||
| 287 | |||
| 288 | if options.quiet and options.debug: | ||
| 289 | parser.error("options --quiet and --debug are mutually exclusive") | ||
| 290 | |||
| 282 | # use configuration files from environment variables | 291 | # use configuration files from environment variables |
| 283 | if "BBPRECONF" in os.environ: | 292 | if "BBPRECONF" in os.environ: |
| 284 | options.prefile.append(os.environ["BBPRECONF"]) | 293 | options.prefile.append(os.environ["BBPRECONF"]) |
diff --git a/bitbake/lib/bb/msg.py b/bitbake/lib/bb/msg.py index 8c3ab47623..b7c39fa133 100644 --- a/bitbake/lib/bb/msg.py +++ b/bitbake/lib/bb/msg.py | |||
| @@ -182,9 +182,12 @@ def constructLogOptions(): | |||
| 182 | debug_domains["BitBake.%s" % domainarg] = logging.DEBUG - dlevel + 1 | 182 | debug_domains["BitBake.%s" % domainarg] = logging.DEBUG - dlevel + 1 |
| 183 | return level, debug_domains | 183 | return level, debug_domains |
| 184 | 184 | ||
| 185 | def addDefaultlogFilter(handler, cls = BBLogFilter): | 185 | def addDefaultlogFilter(handler, cls = BBLogFilter, forcelevel=None): |
| 186 | level, debug_domains = constructLogOptions() | 186 | level, debug_domains = constructLogOptions() |
| 187 | 187 | ||
| 188 | if forcelevel is not None: | ||
| 189 | level = forcelevel | ||
| 190 | |||
| 188 | cls(handler, level, debug_domains) | 191 | cls(handler, level, debug_domains) |
| 189 | 192 | ||
| 190 | # | 193 | # |
diff --git a/bitbake/lib/bb/ui/knotty.py b/bitbake/lib/bb/ui/knotty.py index c245c22dc7..dbcb9c417b 100644 --- a/bitbake/lib/bb/ui/knotty.py +++ b/bitbake/lib/bb/ui/knotty.py | |||
| @@ -161,7 +161,7 @@ class TerminalFilter(object): | |||
| 161 | cr = (25, 80) | 161 | cr = (25, 80) |
| 162 | return cr | 162 | return cr |
| 163 | 163 | ||
| 164 | def __init__(self, main, helper, console, errconsole, format): | 164 | def __init__(self, main, helper, console, errconsole, format, quiet): |
| 165 | self.main = main | 165 | self.main = main |
| 166 | self.helper = helper | 166 | self.helper = helper |
| 167 | self.cuu = None | 167 | self.cuu = None |
| @@ -169,6 +169,7 @@ class TerminalFilter(object): | |||
| 169 | self.interactive = sys.stdout.isatty() | 169 | self.interactive = sys.stdout.isatty() |
| 170 | self.footer_present = False | 170 | self.footer_present = False |
| 171 | self.lastpids = [] | 171 | self.lastpids = [] |
| 172 | self.quiet = quiet | ||
| 172 | 173 | ||
| 173 | if not self.interactive: | 174 | if not self.interactive: |
| 174 | return | 175 | return |
| @@ -267,25 +268,26 @@ class TerminalFilter(object): | |||
| 267 | self.main_progress.update(self.helper.tasknumber_current) | 268 | self.main_progress.update(self.helper.tasknumber_current) |
| 268 | print('') | 269 | print('') |
| 269 | lines = 1 + int(len(content) / (self.columns + 1)) | 270 | lines = 1 + int(len(content) / (self.columns + 1)) |
| 270 | for tasknum, task in enumerate(tasks[:(self.rows - 2)]): | 271 | if not self.quiet: |
| 271 | if isinstance(task, tuple): | 272 | for tasknum, task in enumerate(tasks[:(self.rows - 2)]): |
| 272 | pbar, progress, rate, start_time = task | 273 | if isinstance(task, tuple): |
| 273 | if not pbar.start_time: | 274 | pbar, progress, rate, start_time = task |
| 274 | pbar.start(False) | 275 | if not pbar.start_time: |
| 275 | if start_time: | 276 | pbar.start(False) |
| 276 | pbar.start_time = start_time | 277 | if start_time: |
| 277 | pbar.setmessage('%s:%s' % (tasknum, pbar.msg.split(':', 1)[1])) | 278 | pbar.start_time = start_time |
| 278 | if progress > -1: | 279 | pbar.setmessage('%s:%s' % (tasknum, pbar.msg.split(':', 1)[1])) |
| 279 | pbar.setextra(rate) | 280 | if progress > -1: |
| 280 | output = pbar.update(progress) | 281 | pbar.setextra(rate) |
| 282 | output = pbar.update(progress) | ||
| 283 | else: | ||
| 284 | output = pbar.update(1) | ||
| 285 | if not output or (len(output) <= pbar.term_width): | ||
| 286 | print('') | ||
| 281 | else: | 287 | else: |
| 282 | output = pbar.update(1) | 288 | content = "%s: %s" % (tasknum, task) |
| 283 | if not output or (len(output) <= pbar.term_width): | 289 | print(content) |
| 284 | print('') | 290 | lines = lines + 1 + int(len(content) / (self.columns + 1)) |
| 285 | else: | ||
| 286 | content = "%s: %s" % (tasknum, task) | ||
| 287 | print(content) | ||
| 288 | lines = lines + 1 + int(len(content) / (self.columns + 1)) | ||
| 289 | self.footer_present = lines | 291 | self.footer_present = lines |
| 290 | self.lastpids = runningpids[:] | 292 | self.lastpids = runningpids[:] |
| 291 | self.lastcount = self.helper.tasknumber_current | 293 | self.lastcount = self.helper.tasknumber_current |
| @@ -336,7 +338,10 @@ def main(server, eventHandler, params, tf = TerminalFilter): | |||
| 336 | errconsole = logging.StreamHandler(sys.stderr) | 338 | errconsole = logging.StreamHandler(sys.stderr) |
| 337 | format_str = "%(levelname)s: %(message)s" | 339 | format_str = "%(levelname)s: %(message)s" |
| 338 | format = bb.msg.BBLogFormatter(format_str) | 340 | format = bb.msg.BBLogFormatter(format_str) |
| 339 | bb.msg.addDefaultlogFilter(console, bb.msg.BBLogFilterStdOut) | 341 | if params.options.quiet: |
| 342 | bb.msg.addDefaultlogFilter(console, bb.msg.BBLogFilterStdOut, bb.msg.BBLogFormatter.WARNING) | ||
| 343 | else: | ||
| 344 | bb.msg.addDefaultlogFilter(console, bb.msg.BBLogFilterStdOut) | ||
| 340 | bb.msg.addDefaultlogFilter(errconsole, bb.msg.BBLogFilterStdErr) | 345 | bb.msg.addDefaultlogFilter(errconsole, bb.msg.BBLogFilterStdErr) |
| 341 | console.setFormatter(format) | 346 | console.setFormatter(format) |
| 342 | errconsole.setFormatter(format) | 347 | errconsole.setFormatter(format) |
| @@ -399,7 +404,7 @@ def main(server, eventHandler, params, tf = TerminalFilter): | |||
| 399 | warnings = 0 | 404 | warnings = 0 |
| 400 | taskfailures = [] | 405 | taskfailures = [] |
| 401 | 406 | ||
| 402 | termfilter = tf(main, helper, console, errconsole, format) | 407 | termfilter = tf(main, helper, console, errconsole, format, params.options.quiet) |
| 403 | atexit.register(termfilter.finish) | 408 | atexit.register(termfilter.finish) |
| 404 | 409 | ||
| 405 | while True: | 410 | while True: |
| @@ -498,8 +503,9 @@ def main(server, eventHandler, params, tf = TerminalFilter): | |||
| 498 | continue | 503 | continue |
| 499 | 504 | ||
| 500 | parseprogress.finish() | 505 | parseprogress.finish() |
| 501 | print(("Parsing of %d .bb files complete (%d cached, %d parsed). %d targets, %d skipped, %d masked, %d errors." | 506 | if not params.options.quiet: |
| 502 | % ( event.total, event.cached, event.parsed, event.virtuals, event.skipped, event.masked, event.errors))) | 507 | print(("Parsing of %d .bb files complete (%d cached, %d parsed). %d targets, %d skipped, %d masked, %d errors." |
| 508 | % ( event.total, event.cached, event.parsed, event.virtuals, event.skipped, event.masked, event.errors))) | ||
| 503 | continue | 509 | continue |
| 504 | 510 | ||
| 505 | if isinstance(event, bb.event.CacheLoadStarted): | 511 | if isinstance(event, bb.event.CacheLoadStarted): |
| @@ -510,7 +516,8 @@ def main(server, eventHandler, params, tf = TerminalFilter): | |||
| 510 | continue | 516 | continue |
| 511 | if isinstance(event, bb.event.CacheLoadCompleted): | 517 | if isinstance(event, bb.event.CacheLoadCompleted): |
| 512 | cacheprogress.finish() | 518 | cacheprogress.finish() |
| 513 | print("Loaded %d entries from dependency cache." % event.num_entries) | 519 | if not params.options.quiet: |
| 520 | print("Loaded %d entries from dependency cache." % event.num_entries) | ||
| 514 | continue | 521 | continue |
| 515 | 522 | ||
| 516 | if isinstance(event, bb.command.CommandFailed): | 523 | if isinstance(event, bb.command.CommandFailed): |
| @@ -670,7 +677,7 @@ def main(server, eventHandler, params, tf = TerminalFilter): | |||
| 670 | if return_value and errors: | 677 | if return_value and errors: |
| 671 | summary += pluralise("\nSummary: There was %s ERROR message shown, returning a non-zero exit code.", | 678 | summary += pluralise("\nSummary: There was %s ERROR message shown, returning a non-zero exit code.", |
| 672 | "\nSummary: There were %s ERROR messages shown, returning a non-zero exit code.", errors) | 679 | "\nSummary: There were %s ERROR messages shown, returning a non-zero exit code.", errors) |
| 673 | if summary: | 680 | if summary and not params.options.quiet: |
| 674 | print(summary) | 681 | print(summary) |
| 675 | 682 | ||
| 676 | if interrupted: | 683 | if interrupted: |
