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.

(From OE-Core rev: 81cf5580993c99050e3f4d6d891bc67534721487)

Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This commit is contained in:
Paul Eggleton 2016-01-07 00:15:53 +13:00 committed by Richard Purdie
parent ec9016821d
commit 532f42985f
2 changed files with 15 additions and 16 deletions

View File

@ -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:

View File

@ -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)