From ae788fbd46f8a83d4c1776eeb4457ed5bb61915f Mon Sep 17 00:00:00 2001 From: Paul Eggleton Date: Tue, 22 Sep 2015 17:21:24 +0100 Subject: devtool: check that source tree still exists Sometimes, particularly if you extracted the source to /tmp which is on tmpfs, the external source tree that is being pointed to may no longer exist when you come to run "devtool build" or "devtool update-recipe" etc. Make all of the commands that need to check for a recipe being in the workspace call a single function and have that function additionally check the source tree still exists where appropriate. (From OE-Core rev: 0c3f289576a2ab35b1d1d8854d6763553cc3bf09) Signed-off-by: Paul Eggleton Signed-off-by: Richard Purdie --- scripts/lib/devtool/__init__.py | 14 ++++++++++++++ 1 file changed, 14 insertions(+) (limited to 'scripts/lib/devtool/__init__.py') diff --git a/scripts/lib/devtool/__init__.py b/scripts/lib/devtool/__init__.py index 404d3e6645..fb699b5c61 100644 --- a/scripts/lib/devtool/__init__.py +++ b/scripts/lib/devtool/__init__.py @@ -136,3 +136,17 @@ def parse_recipe(config, tinfoil, pn, appends): not path.startswith(config.workspace_path)] return oe.recipeutils.parse_recipe(recipefile, append_files, tinfoil.config_data) + +def check_workspace_recipe(workspace, pn, checksrc=True): + """ + Check that a recipe is in the workspace and (optionally) that source + is present. + """ + if not pn in workspace: + raise DevtoolError("No recipe named '%s' in your workspace" % pn) + if checksrc: + srctree = workspace[pn]['srctree'] + if not os.path.exists(srctree): + raise DevtoolError("Source tree %s for recipe %s does not exist" % (srctree, pn)) + if not os.listdir(srctree): + raise DevtoolError("Source tree %s for recipe %s is empty" % (srctree, pn)) -- cgit v1.2.3-54-g00ecf