From aa470a1fcd09abbc570d3d885aff460603ef9925 Mon Sep 17 00:00:00 2001 From: Ed Bartosh Date: Fri, 26 Jun 2015 21:27:31 +0300 Subject: 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 Signed-off-by: Richard Purdie --- scripts/wic | 21 +++++---------------- 1 file changed, 5 insertions(+), 16 deletions(-) (limited to 'scripts/wic') diff --git a/scripts/wic b/scripts/wic index a39ec95e0b..b75d122482 100755 --- a/scripts/wic +++ b/scripts/wic @@ -52,7 +52,7 @@ if bitbake_exe: else: bitbake_main = None -from wic.utils.oe.misc import find_bitbake_env_lines, set_bitbake_env_lines +from wic.utils.oe.misc import get_bitbake_var from wic.utils.errors import WicError from image import engine from image import help as hlp @@ -141,12 +141,6 @@ def wic_create_subcommand(args, usage_str): else: print "Done.\n" - bitbake_env_lines = find_bitbake_env_lines(options.image_name) - if not bitbake_env_lines: - print "Couldn't get bitbake environment, exiting." - sys.exit(1) - set_bitbake_env_lines(bitbake_env_lines) - bootimg_dir = "" if options.image_name: @@ -160,9 +154,10 @@ def wic_create_subcommand(args, usage_str): cookerdata.CookerConfiguration()): sys.exit(1) - (rootfs_dir, kernel_dir, bootimg_dir, native_sysroot) \ - = engine.find_artifacts(options.image_name) - + rootfs_dir = get_bitbake_var("IMAGE_ROOTFS", options.image_name) + kernel_dir = get_bitbake_var("DEPLOY_DIR_IMAGE", options.image_name) + native_sysroot = get_bitbake_var("STAGING_DIR_NATIVE", + options.image_name) else: if options.build_rootfs: print "Image name is not specified, exiting. (Use -e/--image-name to specify it)\n" @@ -244,12 +239,6 @@ def wic_list_subcommand(args, usage_str): (options, args) = parser.parse_args(args) - bitbake_env_lines = find_bitbake_env_lines(None) - if not bitbake_env_lines: - print "Couldn't get bitbake environment, exiting." - sys.exit(1) - set_bitbake_env_lines(bitbake_env_lines) - if not engine.wic_list(args, scripts_path, options.properties_file): logging.error("Bad list arguments, exiting\n") parser.print_help() -- cgit v1.2.3-54-g00ecf