Go to:
Gentoo Home
Documentation
Forums
Lists
Bugs
Planet
Store
Wiki
Get Gentoo!
Gentoo's Bugzilla – Attachment 370114 Details for
Bug 481584
Repoman: Output is needlessly hard to parse
Home
|
New
–
[Ex]
|
Browse
|
Search
|
Privacy Policy
|
[?]
|
Reports
|
Requests
|
Help
|
New Account
|
Log In
[x]
|
Forgot Password
Login:
[x]
[patch]
repoman-parseable-v2.patch
repoman-parseable-v2.patch (text/plain), 3.99 KB, created by
Chris Reffett (RETIRED)
on 2014-02-11 02:43:14 UTC
(
hide
)
Description:
repoman-parseable-v2.patch
Filename:
MIME Type:
Creator:
Chris Reffett (RETIRED)
Created:
2014-02-11 02:43:14 UTC
Size:
3.99 KB
patch
obsolete
>commit cb890c6867d566315972cde411e85ec3a6e578df >Author: Chris Reffett <creffett@gentoo.org> >Date: Mon Feb 10 15:16:33 2014 -0500 > > Add --output-style option to repoman > > This patch adds a --output-style option to repoman, which gives the user > a choice of output formats for the repoman checks. Choices are "default" > (current style) and "column" (a greppable format), but it should be easy > to add more. Fixes bug 481584. > > v2: Fix docstring to be complete and in the standard format, make use of > default choices in --output-style wrt comments by antarus and dol-sen > >diff --git a/bin/repoman b/bin/repoman >index 3504b6b..c7a1c4c 100755 >--- a/bin/repoman >+++ b/bin/repoman >@@ -144,9 +144,16 @@ def ParseArgs(argv, qahelp): > 'scan' : 'Scan directory tree for QA issues' > } > >+ output_choices = { >+ 'default' : 'The normal output format', >+ 'column' : 'Columnar output suitable for use with grep' >+ } >+ > mode_keys = list(modes) > mode_keys.sort() > >+ output_keys = sorted(output_choices) >+ > parser = ArgumentParser(usage="repoman [options] [mode]", > description="Modes: %s" % " | ".join(mode_keys), > epilog="For more help consult the man page.") >@@ -228,6 +235,9 @@ def ParseArgs(argv, qahelp): > parser.add_argument('--without-mask', dest='without_mask', action='store_true', > default=False, help='behave as if no package.mask entries exist (not allowed with commit mode)') > >+ parser.add_argument('--output-style', dest='output_style', choices=output_keys, >+ help='select output type', default='default') >+ > parser.add_argument('--mode', dest='mode', choices=mode_keys, > help='specify which mode repoman will run in (default=full)') > >@@ -2422,7 +2432,10 @@ console_writer.style_listener = style_file.new_styles > > f = formatter.AbstractFormatter(console_writer) > >-utilities.format_qa_output(f, stats, fails, dofull, dofail, options, qawarnings) >+if options.output_style == 'column': >+ utilities.format_qa_output_column(f, stats, fails, dofull, dofail, options, qawarnings) >+else: >+ utilities.format_qa_output(f, stats, fails, dofull, dofail, options, qawarnings) > > style_file.flush() > del console_writer, f, style_file >diff --git a/pym/repoman/utilities.py b/pym/repoman/utilities.py >index 3ec3a4a..aec61fe 100644 >--- a/pym/repoman/utilities.py >+++ b/pym/repoman/utilities.py >@@ -330,6 +330,50 @@ def format_qa_output(formatter, stats, fails, dofull, dofail, options, qawarning > formatter.add_line_break() > > >+def format_qa_output_column(formatter, stats, fails, dofull, dofail, options, qawarnings): >+ """Helper function that formats output in a machine-parseable column format >+ >+ @param formatter: an instance of Formatter >+ @type formatter: Formatter >+ @param path: dict of qa status items >+ @type path: dict >+ @param fails: dict of qa status failures >+ @type fails: dict >+ @param dofull: Whether to print full results or a summary >+ @type dofull: boolean >+ @param dofail: Whether failure was hard or soft >+ @type dofail: boolean >+ @param options: The command-line options provided to repoman >+ @type options: Namespace >+ @param qawarnings: the set of warning types >+ @type qawarnings: set >+ @return: None (modifies formatter) >+ """ >+ full = options.mode == 'full' >+ for category, number in stats.items(): >+ # we only want key value pairs where value > 0 >+ if number < 1: >+ continue >+ >+ formatter.add_literal_data("NumberOf " + category + " ") >+ if category in qawarnings: >+ formatter.push_style("WARN") >+ else: >+ formatter.push_style("BAD") >+ formatter.add_literal_data("%s" % number) >+ formatter.pop_style() >+ formatter.add_line_break() >+ if not dofull: >+ if not full and dofail and category in qawarnings: >+ # warnings are considered noise when there are failures >+ continue >+ fails_list = fails[category] >+ if not full and len(fails_list) > 12: >+ fails_list = fails_list[:12] >+ for failure in fails_list: >+ formatter.add_literal_data(category + " " + failure) >+ formatter.add_line_break() >+ > def editor_is_executable(editor): > """ > Given an EDITOR string, validate that it refers to
You cannot view the attachment while viewing its details because your browser does not support IFRAMEs.
View the attachment on a separate page
.
View Attachment As Diff
View Attachment As Raw
Actions:
View
|
Diff
Attachments on
bug 481584
:
370090
| 370114