diff options
Diffstat (limited to 'import-layers/yocto-poky/scripts/lib/devtool/utilcmds.py')
-rw-r--r-- | import-layers/yocto-poky/scripts/lib/devtool/utilcmds.py | 27 |
1 files changed, 22 insertions, 5 deletions
diff --git a/import-layers/yocto-poky/scripts/lib/devtool/utilcmds.py b/import-layers/yocto-poky/scripts/lib/devtool/utilcmds.py index 0437e6417..b74511643 100644 --- a/import-layers/yocto-poky/scripts/lib/devtool/utilcmds.py +++ b/import-layers/yocto-poky/scripts/lib/devtool/utilcmds.py @@ -30,15 +30,13 @@ from devtool import parse_recipe logger = logging.getLogger('devtool') - -def edit_recipe(args, config, basepath, workspace): - """Entry point for the devtool 'edit-recipe' subcommand""" +def _find_recipe_path(args, config, basepath, workspace): if args.any_recipe: tinfoil = setup_tinfoil(config_only=False, basepath=basepath) try: rd = parse_recipe(config, tinfoil, args.recipename, True) if not rd: - return 1 + raise DevtoolError("Failed to find specified recipe") recipefile = rd.getVar('FILE') finally: tinfoil.shutdown() @@ -48,8 +46,19 @@ def edit_recipe(args, config, basepath, workspace): if not recipefile: raise DevtoolError("Recipe file for %s is not under the workspace" % args.recipename) + return recipefile + + +def find_recipe(args, config, basepath, workspace): + """Entry point for the devtool 'find-recipe' subcommand""" + recipefile = _find_recipe_path(args, config, basepath, workspace) + print(recipefile) + return 0 - return scriptutils.run_editor(recipefile) + +def edit_recipe(args, config, basepath, workspace): + """Entry point for the devtool 'edit-recipe' subcommand""" + return scriptutils.run_editor(_find_recipe_path(args, config, basepath, workspace), logger) def configure_help(args, config, basepath, workspace): @@ -220,6 +229,14 @@ def register_commands(subparsers, context): parser_edit_recipe.add_argument('--any-recipe', '-a', action="store_true", help='Edit any recipe, not just where the recipe file itself is in the workspace') parser_edit_recipe.set_defaults(func=edit_recipe) + # Find-recipe + parser_find_recipe = subparsers.add_parser('find-recipe', help='Find a recipe file in your workspace', + description='By default, this will find a recipe file in your workspace; you can override this with the -a/--any-recipe option.', + group='working') + parser_find_recipe.add_argument('recipename', help='Recipe to find') + parser_find_recipe.add_argument('--any-recipe', '-a', action="store_true", help='Find any recipe, not just where the recipe file itself is in the workspace') + parser_find_recipe.set_defaults(func=find_recipe) + # NOTE: Needed to override the usage string here since the default # gets the order wrong - recipename must come before --arg parser_configure_help = subparsers.add_parser('configure-help', help='Get help on configure script options', |