[bitbake-devel] bitbake-layers: show-appends: add optional argument to limit package list

Submitted by Matthew McClintock on Jan. 12, 2017, 12:44 a.m. | Patch ID: 135803

Details

Message ID 1484181858-2247-1-git-send-email-msm-oss@mcclintock.net
State New
Headers show

Commit Message

Matthew McClintock Jan. 12, 2017, 12:44 a.m.
Add ability to limit output per package:

$ bitbake-layers show-appends m4

Patch hide | download patch | download mbox

=== Matched appended recipes ===
m4_1.4.17.bb:
  /home/mattsm/git/openembedded-core/meta-selftest/recipes-test/m4/m4_1.4.17.bbappend

Useful for writing tools to process the output, and debugging
bbappends for specific packages

Signed-off-by: Matthew McClintock <msm-oss@mcclintock.net>
---
 lib/bblayers/query.py | 14 ++++++++++----
 1 file changed, 10 insertions(+), 4 deletions(-)

diff --git a/lib/bblayers/query.py b/lib/bblayers/query.py
index 5def717..bef3af3 100644
--- a/lib/bblayers/query.py
+++ b/lib/bblayers/query.py
@@ -242,17 +242,22 @@  skipped recipes will also be listed, with a " (skipped)" suffix.
 
 Lists recipes with the bbappends that apply to them as subitems.
 """
-
-        logger.plain('=== Appended recipes ===')
+        if args.pnspec:
+            logger.plain('=== Matched appended recipes ===')
+        else:
+            logger.plain('=== Appended recipes ===')
 
         pnlist = list(self.tinfoil.cooker_data.pkg_pn.keys())
         pnlist.sort()
         appends = False
         for pn in pnlist:
+            if args.pnspec and pn != args.pnspec:
+                continue
+
             if self.show_appends_for_pn(pn):
                 appends = True
 
-        if self.show_appends_for_skipped():
+        if not args.pnspec and self.show_appends_for_skipped():
             appends = True
 
         if not appends:
@@ -477,7 +482,8 @@  NOTE: .bbappend files can impact the dependencies.
         parser_show_recipes.add_argument('-i', '--inherits', help='only list recipes that inherit the named class', metavar='CLASS', default='')
         parser_show_recipes.add_argument('pnspec', nargs='?', help='optional recipe name specification (wildcards allowed, enclose in quotes to avoid shell expansion)')
 
-        self.add_command(sp, 'show-appends', self.do_show_appends)
+        parser_show_appends = self.add_command(sp, 'show-appends', self.do_show_appends)
+        parser_show_appends.add_argument('pnspec', nargs='?', help='optional recipe name specification (wildcards allowed, enclose in quotes to avoid shell expansion)')
 
         parser_show_cross_depends = self.add_command(sp, 'show-cross-depends', self.do_show_cross_depends)
         parser_show_cross_depends.add_argument('-f', '--filenames', help='show full file path', action='store_true')

Comments

Paul Eggleton Jan. 23, 2017, 8:45 a.m.
On Wed, 11 Jan 2017 18:44:18 Matthew McClintock wrote:
> Add ability to limit output per package:
> 
> $ bitbake-layers show-appends m4
> === Matched appended recipes ===
> m4_1.4.17.bb:
>  
> /home/mattsm/git/openembedded-core/meta-selftest/recipes-test/m4/m4_1.4.17.
> bbappend
> 
> Useful for writing tools to process the output, and debugging
> bbappends for specific packages
> 
> Signed-off-by: Matthew McClintock <msm-oss@mcclintock.net>
> ---
>  lib/bblayers/query.py | 14 ++++++++++----
>  1 file changed, 10 insertions(+), 4 deletions(-)
> 
> diff --git a/lib/bblayers/query.py b/lib/bblayers/query.py
> index 5def717..bef3af3 100644
> --- a/lib/bblayers/query.py
> +++ b/lib/bblayers/query.py
> @@ -242,17 +242,22 @@ skipped recipes will also be listed, with a "
> (skipped)" suffix.
> 
>  Lists recipes with the bbappends that apply to them as subitems.
>  """
> -
> -        logger.plain('=== Appended recipes ===')
> +        if args.pnspec:
> +            logger.plain('=== Matched appended recipes ===')
> +        else:
> +            logger.plain('=== Appended recipes ===')
> 
>          pnlist = list(self.tinfoil.cooker_data.pkg_pn.keys())
>          pnlist.sort()
>          appends = False
>          for pn in pnlist:
> +            if args.pnspec and pn != args.pnspec:
> +                continue
> +
>              if self.show_appends_for_pn(pn):
>                  appends = True
> 
> -        if self.show_appends_for_skipped():
> +        if not args.pnspec and self.show_appends_for_skipped():
>              appends = True
> 
>          if not appends:
> @@ -477,7 +482,8 @@ NOTE: .bbappend files can impact the dependencies.
>          parser_show_recipes.add_argument('-i', '--inherits', help='only
> list recipes that inherit the named class', metavar='CLASS', default='')
> parser_show_recipes.add_argument('pnspec', nargs='?', help='optional recipe
> name specification (wildcards allowed, enclose in quotes to avoid shell
> expansion)')
> 
> -        self.add_command(sp, 'show-appends', self.do_show_appends)
> +        parser_show_appends = self.add_command(sp, 'show-appends',
> self.do_show_appends) +        parser_show_appends.add_argument('pnspec',
> nargs='?', help='optional recipe name specification (wildcards allowed,
> enclose in quotes to avoid shell expansion)')
> 
>          parser_show_cross_depends = self.add_command(sp,
> 'show-cross-depends', self.do_show_cross_depends)
> parser_show_cross_depends.add_argument('-f', '--filenames', help='show full
> file path', action='store_true')

Acked-by: Paul Eggleton <paul.eggleton@linux.intel.com>

Cheers,
Paul