[bitbake-devel] [PATCH 02/15] knotty: make quiet option a level option
Joshua Lock
joshua.g.lock at linux.intel.com
Tue Dec 13 09:21:35 UTC 2016
On Tue, 2016-12-13 at 20:07 +1300, Paul Eggleton wrote:
> Allow you to specify -q / --quiet more than once to reduce the
> messages
> even further. It will now operate as follows:
>
> Level Option Result
> ----- ------ ----------------------------------------
> 0 Print usual output
> 1 -q Only show progress and warnings or above
> 2 -qq Only show warnings or above
> 3+ -qqq Only show errors
I like this change, can we document the levels somewhere other than the
commit message?
Thanks,
Joshua
> Signed-off-by: Paul Eggleton <paul.eggleton at linux.intel.com>
> ---
> lib/bb/main.py | 4 ++--
> lib/bb/ui/knotty.py | 35 ++++++++++++++++++++++++++++-------
> 2 files changed, 30 insertions(+), 9 deletions(-)
>
> diff --git a/lib/bb/main.py b/lib/bb/main.py
> index f2f59f6..a544c0a 100755
> --- a/lib/bb/main.py
> +++ b/lib/bb/main.py
> @@ -179,8 +179,8 @@ class
> BitBakeConfigParameters(cookerdata.ConfigParameters):
> parser.add_option("-D", "--debug", action="count",
> dest="debug", default=0,
> help="Increase the debug level. You can
> specify this more than once.")
>
> - parser.add_option("-q", "--quiet", action="store_true",
> dest="quiet", default=False,
> - help="Output less log message data to the
> terminal.")
> + parser.add_option("-q", "--quiet", action="count",
> dest="quiet", default=0,
> + help="Output less log message data to the
> terminal. You can specify this more than once.")
>
> parser.add_option("-n", "--dry-run", action="store_true",
> dest="dry_run", default=False,
> help="Don't execute, just go through the
> motions.")
> diff --git a/lib/bb/ui/knotty.py b/lib/bb/ui/knotty.py
> index 48e1223..3390eb7 100644
> --- a/lib/bb/ui/knotty.py
> +++ b/lib/bb/ui/knotty.py
> @@ -284,7 +284,7 @@ class TerminalFilter(object):
> content = self.main_progress.update(progress)
> print('')
> lines = 1 + int(len(content) / (self.columns + 1))
> - if not self.quiet:
> + if self.quiet == 0:
> for tasknum, task in enumerate(tasks[:(self.rows - 2)]):
> if isinstance(task, tuple):
> pbar, progress, rate, start_time = task
> @@ -353,10 +353,13 @@ def main(server, eventHandler, params, tf =
> TerminalFilter):
> errconsole = logging.StreamHandler(sys.stderr)
> format_str = "%(levelname)s: %(message)s"
> format = bb.msg.BBLogFormatter(format_str)
> - if params.options.quiet:
> - bb.msg.addDefaultlogFilter(console,
> bb.msg.BBLogFilterStdOut, bb.msg.BBLogFormatter.WARNING)
> + if params.options.quiet == 0:
> + forcelevel = None
> + elif params.options.quiet > 2:
> + forcelevel = bb.msg.BBLogFormatter.ERROR
> else:
> - bb.msg.addDefaultlogFilter(console,
> bb.msg.BBLogFilterStdOut)
> + forcelevel = bb.msg.BBLogFormatter.WARNING
> + bb.msg.addDefaultlogFilter(console, bb.msg.BBLogFilterStdOut,
> forcelevel)
> bb.msg.addDefaultlogFilter(errconsole, bb.msg.BBLogFilterStdErr)
> console.setFormatter(format)
> errconsole.setFormatter(format)
> @@ -506,35 +509,47 @@ def main(server, eventHandler, params, tf =
> TerminalFilter):
> logger.info(event._message)
> continue
> if isinstance(event, bb.event.ParseStarted):
> + if params.options.quiet > 1:
> + continue
> if event.total == 0:
> continue
> parseprogress = new_progress("Parsing recipes",
> event.total).start()
> continue
> if isinstance(event, bb.event.ParseProgress):
> + if params.options.quiet > 1:
> + continue
> if parseprogress:
> parseprogress.update(event.current)
> else:
> bb.warn("Got ParseProgress event for parsing
> that never started?")
> continue
> if isinstance(event, bb.event.ParseCompleted):
> + if params.options.quiet > 1:
> + continue
> if not parseprogress:
> continue
> parseprogress.finish()
> pasreprogress = None
> - if not params.options.quiet:
> + if params.options.quiet == 0:
> print(("Parsing of %d .bb files complete (%d
> cached, %d parsed). %d targets, %d skipped, %d masked, %d errors."
> % ( event.total, event.cached, event.parsed,
> event.virtuals, event.skipped, event.masked, event.errors)))
> continue
>
> if isinstance(event, bb.event.CacheLoadStarted):
> + if params.options.quiet > 1:
> + continue
> cacheprogress = new_progress("Loading cache",
> event.total).start()
> continue
> if isinstance(event, bb.event.CacheLoadProgress):
> + if params.options.quiet > 1:
> + continue
> cacheprogress.update(event.current)
> continue
> if isinstance(event, bb.event.CacheLoadCompleted):
> + if params.options.quiet > 1:
> + continue
> cacheprogress.finish()
> - if not params.options.quiet:
> + if params.options.quiet == 0:
> print("Loaded %d entries from dependency cache."
> % event.num_entries)
> continue
>
> @@ -620,16 +635,22 @@ def main(server, eventHandler, params, tf =
> TerminalFilter):
> continue
>
> if isinstance(event, bb.event.ProcessStarted):
> + if params.options.quiet > 1:
> + continue
> parseprogress = new_progress(event.processname,
> event.total)
> parseprogress.start(False)
> continue
> if isinstance(event, bb.event.ProcessProgress):
> + if params.options.quiet > 1:
> + continue
> if parseprogress:
> parseprogress.update(event.progress)
> else:
> bb.warn("Got ProcessProgress event for someting
> that never started?")
> continue
> if isinstance(event, bb.event.ProcessFinished):
> + if params.options.quiet > 1:
> + continue
> if parseprogress:
> parseprogress.finish()
> parseprogress = None
> @@ -701,7 +722,7 @@ def main(server, eventHandler, params, tf =
> TerminalFilter):
> if return_value and errors:
> summary += pluralise("\nSummary: There was %s ERROR
> message shown, returning a non-zero exit code.",
> "\nSummary: There were %s ERROR
> messages shown, returning a non-zero exit code.", errors)
> - if summary and not params.options.quiet:
> + if summary and params.options.quiet == 0:
> print(summary)
>
> if interrupted:
> --
> 2.5.5
>
More information about the bitbake-devel
mailing list