summaryrefslogtreecommitdiffstats
path: root/scripts/lib/devtool/sdk.py
diff options
context:
space:
mode:
authorPaul Eggleton <paul.eggleton@linux.intel.com>2016-02-19 22:38:53 +1300
committerRichard Purdie <richard.purdie@linuxfoundation.org>2016-02-21 09:32:42 +0000
commit32ef52389833a8b8dfb63444ace6561bb0ac741c (patch)
tree59f597df4ce685609706c7db90ee0eb654b044a5 /scripts/lib/devtool/sdk.py
parent9f7df76eb49eac1ec7627061a8219e5d0b052034 (diff)
downloadpoky-32ef52389833a8b8dfb63444ace6561bb0ac741c.tar.gz
devtool: categorise and order subcommands in help output
The listing of subcommands in the --help output for devtool was starting to get difficult to follow, with commands appearing in no particular order (due to some being in separate modules and the order of those modules being parsed). Logically grouping the subcommands as well as being able to exercise some control over the order of the subcommands and groups would help, if we do so without losing the dynamic nature of the list (i.e. that it comes from the plugins). Argparse provides no built-in way to handle this and really, really makes it a pain to add, but with some subclassing and hacking it's now possible, and can be extended by any plugin as desired. To put a subcommand into a group, all you need to do is specify a group= parameter in the call to subparsers.add_parser(). you can also specify an order= parameter to make the subcommand sort higher or lower in the list (higher order numbers appear first, so use negative numbers to force items to the end if that's what you want). To add a new group, use subparsers.add_subparser_group(), supplying the name, description and optionally an order number for the group itself (again, higher numbers appear first). (From OE-Core rev: e1b9d31e6ea3c254ecfe940fe795af44761e0e69) Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Diffstat (limited to 'scripts/lib/devtool/sdk.py')
-rw-r--r--scripts/lib/devtool/sdk.py10
1 files changed, 8 insertions, 2 deletions
diff --git a/scripts/lib/devtool/sdk.py b/scripts/lib/devtool/sdk.py
index 12de9423e7..f6c5434732 100644
--- a/scripts/lib/devtool/sdk.py
+++ b/scripts/lib/devtool/sdk.py
@@ -296,10 +296,16 @@ def sdk_install(args, config, basepath, workspace):
296def register_commands(subparsers, context): 296def register_commands(subparsers, context):
297 """Register devtool subcommands from the sdk plugin""" 297 """Register devtool subcommands from the sdk plugin"""
298 if context.fixed_setup: 298 if context.fixed_setup:
299 parser_sdk = subparsers.add_parser('sdk-update', help='Update SDK components from a nominated location') 299 parser_sdk = subparsers.add_parser('sdk-update',
300 help='Update SDK components from a nominated location',
301 group='sdk')
300 parser_sdk.add_argument('updateserver', help='The update server to fetch latest SDK components from', nargs='?') 302 parser_sdk.add_argument('updateserver', help='The update server to fetch latest SDK components from', nargs='?')
301 parser_sdk.add_argument('--skip-prepare', action="store_true", help='Skip re-preparing the build system after updating (for debugging only)') 303 parser_sdk.add_argument('--skip-prepare', action="store_true", help='Skip re-preparing the build system after updating (for debugging only)')
302 parser_sdk.set_defaults(func=sdk_update) 304 parser_sdk.set_defaults(func=sdk_update)
303 parser_sdk_install = subparsers.add_parser('sdk-install', help='Install additional SDK components', description='Installs additional recipe development files into the SDK. (You can use "devtool search" to find available recipes.)') 305
306 parser_sdk_install = subparsers.add_parser('sdk-install',
307 help='Install additional SDK components',
308 description='Installs additional recipe development files into the SDK. (You can use "devtool search" to find available recipes.)',
309 group='sdk')
304 parser_sdk_install.add_argument('recipename', help='Name of the recipe to install the development artifacts for', nargs='+') 310 parser_sdk_install.add_argument('recipename', help='Name of the recipe to install the development artifacts for', nargs='+')
305 parser_sdk_install.set_defaults(func=sdk_install) 311 parser_sdk_install.set_defaults(func=sdk_install)