]> code.ossystems Code Review - openembedded-core.git/commitdiff
lib/oe/recipeutils: add a parse_recipe_simple() function
authorPaul Eggleton <paul.eggleton@linux.intel.com>
Thu, 14 May 2015 10:44:59 +0000 (11:44 +0100)
committerRichard Purdie <richard.purdie@linuxfoundation.org>
Fri, 15 May 2015 21:21:54 +0000 (22:21 +0100)
Add a function that simply parses a recipe by name and optionally the
bbappends that apply to it. (Note that if you're using tinfoil you need
to have initialised it with config_only=False so that it can map the
recipe name to a recipe file.)

Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com>
meta/lib/oe/recipeutils.py

index 19d97b62d24eed4829010838b72aa191237dc4b6..0689fb0c714af7474ff3a52eb5258571321b4e6e 100644 (file)
@@ -44,13 +44,36 @@ def get_unavailable_reasons(cooker, pn):
     return taskdata.get_reasons(pn)
 
 
-def parse_recipe(fn, appends, d):
-    """Parse an individual recipe"""
+def parse_recipe(fn, appendfiles, d):
+    """
+    Parse an individual recipe file, optionally with a list of
+    bbappend files.
+    """
     import bb.cache
-    envdata = bb.cache.Cache.loadDataFull(fn, appends, d)
+    envdata = bb.cache.Cache.loadDataFull(fn, appendfiles, d)
     return envdata
 
 
+def parse_recipe_simple(cooker, pn, d, appends=True):
+    """
+    Parse a recipe and optionally all bbappends that apply to it
+    in the current configuration.
+    """
+    import bb.providers
+
+    recipefile = pn_to_recipe(cooker, pn)
+    if not recipefile:
+        skipreasons = get_unavailable_reasons(cooker, pn)
+        # We may as well re-use bb.providers.NoProvider here
+        if skipreasons:
+            raise bb.providers.NoProvider(skipreasons)
+        else:
+            raise bb.providers.NoProvider('Unable to find any recipe file matching %s' % pn)
+    if appends:
+        appendfiles = cooker.collection.get_file_appends(recipefile)
+    return parse_recipe(recipefile, appendfiles, d)
+
+
 def get_var_files(fn, varlist, d):
     """Find the file in which each of a list of variables is set.
     Note: requires variable history to be enabled when parsing.