summaryrefslogtreecommitdiffstats
path: root/scripts/wic
diff options
context:
space:
mode:
authorEd Bartosh <ed.bartosh@linux.intel.com>2015-06-26 21:27:31 +0300
committerRichard Purdie <richard.purdie@linuxfoundation.org>2015-07-02 23:08:36 +0100
commitaa470a1fcd09abbc570d3d885aff460603ef9925 (patch)
treef04cc1fe57fa3a1310ce8c7cab3cd213d5b7c6a1 /scripts/wic
parent673343414f4c9db32e3e0c58f07c59954bab734c (diff)
downloadpoky-aa470a1fcd09abbc570d3d885aff460603ef9925.tar.gz
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>
Diffstat (limited to 'scripts/wic')
-rwxr-xr-xscripts/wic21
1 files changed, 5 insertions, 16 deletions
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:
52else: 52else:
53 bitbake_main = None 53 bitbake_main = None
54 54
55from wic.utils.oe.misc import find_bitbake_env_lines, set_bitbake_env_lines 55from wic.utils.oe.misc import get_bitbake_var
56from wic.utils.errors import WicError 56from wic.utils.errors import WicError
57from image import engine 57from image import engine
58from image import help as hlp 58from image import help as hlp
@@ -141,12 +141,6 @@ def wic_create_subcommand(args, usage_str):
141 else: 141 else:
142 print "Done.\n" 142 print "Done.\n"
143 143
144 bitbake_env_lines = find_bitbake_env_lines(options.image_name)
145 if not bitbake_env_lines:
146 print "Couldn't get bitbake environment, exiting."
147 sys.exit(1)
148 set_bitbake_env_lines(bitbake_env_lines)
149
150 bootimg_dir = "" 144 bootimg_dir = ""
151 145
152 if options.image_name: 146 if options.image_name:
@@ -160,9 +154,10 @@ def wic_create_subcommand(args, usage_str):
160 cookerdata.CookerConfiguration()): 154 cookerdata.CookerConfiguration()):
161 sys.exit(1) 155 sys.exit(1)
162 156
163 (rootfs_dir, kernel_dir, bootimg_dir, native_sysroot) \ 157 rootfs_dir = get_bitbake_var("IMAGE_ROOTFS", options.image_name)
164 = engine.find_artifacts(options.image_name) 158 kernel_dir = get_bitbake_var("DEPLOY_DIR_IMAGE", options.image_name)
165 159 native_sysroot = get_bitbake_var("STAGING_DIR_NATIVE",
160 options.image_name)
166 else: 161 else:
167 if options.build_rootfs: 162 if options.build_rootfs:
168 print "Image name is not specified, exiting. (Use -e/--image-name to specify it)\n" 163 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):
244 239
245 (options, args) = parser.parse_args(args) 240 (options, args) = parser.parse_args(args)
246 241
247 bitbake_env_lines = find_bitbake_env_lines(None)
248 if not bitbake_env_lines:
249 print "Couldn't get bitbake environment, exiting."
250 sys.exit(1)
251 set_bitbake_env_lines(bitbake_env_lines)
252
253 if not engine.wic_list(args, scripts_path, options.properties_file): 242 if not engine.wic_list(args, scripts_path, options.properties_file):
254 logging.error("Bad list arguments, exiting\n") 243 logging.error("Bad list arguments, exiting\n")
255 parser.print_help() 244 parser.print_help()