From 81cf5580993c99050e3f4d6d891bc67534721487 Mon Sep 17 00:00:00 2001 From: Paul Eggleton Date: Thu, 7 Jan 2016 00:15:53 +1300 Subject: devtool: refactor code for getting local recipe file We're doing this in a couple of places, let's just find the recipe file if it exists within the workspace (which it will if it's been added through "devtool add") when we read in the workspace. Signed-off-by: Paul Eggleton Signed-off-by: Richard Purdie --- scripts/devtool | 12 +++++++++++- scripts/lib/devtool/standard.py | 19 ++++--------------- 2 files changed, 15 insertions(+), 16 deletions(-) diff --git a/scripts/devtool b/scripts/devtool index bda05e1c2f..2d57da0bc1 100755 --- a/scripts/devtool +++ b/scripts/devtool @@ -112,8 +112,18 @@ def read_workspace(): res = externalsrc_re.match(line.rstrip()) if res: pn = res.group(2) or os.path.splitext(os.path.basename(fn))[0].split('_')[0] + # Find the recipe file within the workspace, if any + bbfile = os.path.basename(fn).replace('.bbappend', '.bb').replace('%', '*') + recipefile = glob.glob(os.path.join(config.workspace_path, + 'recipes', + pn, + bbfile)) + if recipefile: + recipefile = recipefile[0] workspace[pn] = {'srctree': res.group(3), - 'bbappend': fn} + 'bbappend': fn, + 'recipefile': recipefile} + logger.debug('Found recipe %s' % workspace[pn]) def create_workspace(args, config, basepath, workspace): if args.layerpath: diff --git a/scripts/lib/devtool/standard.py b/scripts/lib/devtool/standard.py index 7ef0ab8c64..e26ce5a6fb 100644 --- a/scripts/lib/devtool/standard.py +++ b/scripts/lib/devtool/standard.py @@ -1171,13 +1171,9 @@ def status(args, config, basepath, workspace): """Entry point for the devtool 'status' subcommand""" if workspace: for recipe, value in workspace.iteritems(): - bbfile = os.path.basename(value['bbappend']).replace('.bbappend', '.bb').replace('%', '*') - recipefile = glob.glob(os.path.join(config.workspace_path, - 'recipes', - recipe, - bbfile)) + recipefile = value['recipefile'] if recipefile: - recipestr = ' (%s)' % recipefile[0] + recipestr = ' (%s)' % recipefile else: recipestr = '' print("%s: %s%s" % (recipe, value['srctree'], recipestr)) @@ -1261,15 +1257,8 @@ def edit_recipe(args, config, basepath, workspace): tinfoil.shutdown() else: check_workspace_recipe(workspace, args.recipename) - bbappend = workspace[args.recipename]['bbappend'] - bbfile = os.path.basename(bbappend).replace('.bbappend', '.bb').replace('%', '*') - recipefile = glob.glob(os.path.join(config.workspace_path, - 'recipes', - args.recipename, - bbfile)) - if recipefile: - recipefile = recipefile[0] - else: + recipefile = workspace[args.recipename]['recipefile'] + if not recipefile: raise DevtoolError("Recipe file for %s is not under the workspace" % args.recipename) -- cgit 1.2.3-korg