wic: Refactor getting bitbake variables

Wic gets bitbake variables by parsing output of 'bitbake -e' command.

This implementation improves this procedure as it runs 'bitbake -e' only
when API is called and does it only once, i.e. in a "lazy" way. As parsing
results are cached 'bitbake -e' is run only once and results are parsed
only once per requested set of variables.

get_bitbake_var became the only API call. It replaces find_artifacts,
find_artifact, find_bitbake_env_lines, get_bitbake_env_lines,
set_bitbake_env_lines and get_line_val calls making API much more clear.

(From OE-Core rev: 3abe23bd217315246ec2d98dc9c390b85cfe6a92)

Signed-off-by: Ed Bartosh <ed.bartosh@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This commit is contained in:
Ed Bartosh
2015-06-26 21:27:31 +03:00
committed by Richard Purdie
parent 673343414f
commit aa470a1fcd
5 changed files with 37 additions and 102 deletions

View File

@@ -59,11 +59,7 @@ class RootfsPlugin(SourcePlugin):
if os.path.isdir(rootfs_dir):
return rootfs_dir
bitbake_env_lines = misc.find_bitbake_env_lines(rootfs_dir)
if not bitbake_env_lines:
msger.error("Couldn't get bitbake environment, exiting.")
image_rootfs_dir = misc.find_artifact(bitbake_env_lines, "IMAGE_ROOTFS")
image_rootfs_dir = misc.get_bitbake_var("IMAGE_ROOTFS", rootfs_dir)
if not os.path.isdir(image_rootfs_dir):
msg = "No valid artifact IMAGE_ROOTFS from image named"
msg += " %s has been found at %s, exiting.\n" % \