wic/utils/misc.py: Added function to search for files in canned-wks

This change add two new function to search for files in the
canned-wks folder for all the layers included in bblayers.conf.
This will be used to search for custom configuration files for
the bootloaders.

There are similar functions in the wic engine, but these are
focused in wks files only, so it was needed to create new ones.

[YOCTO #8728]

(From OE-Core rev: 356a942e75ac1743290d2c360d1bb89e2225b6cc)

Signed-off-by: Mariano Lopez <mariano.lopez@linux.intel.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This commit is contained in:
Mariano Lopez 2015-12-01 07:14:53 +00:00 committed by Richard Purdie
parent 9773faadfe
commit f95f729518
1 changed files with 39 additions and 0 deletions

View File

@ -17,6 +17,7 @@
import os
import time
import wic.engine
def build_name(kscfg, release=None, prefix=None, suffix=None):
"""Construct and return an image name string.
@ -56,3 +57,41 @@ def build_name(kscfg, release=None, prefix=None, suffix=None):
ret = prefix + name + suffix
return ret
def find_boot_config(scripts_path, boot_file):
"""
Find a config file with the given name in the canned files dir.
Return False if not found
"""
if os.path.exists(boot_file):
return boot_file
layers_canned_wks_dir = wic.engine.build_canned_image_list(scripts_path)
for canned_wks_dir in layers_canned_wks_dir:
for root, dirs, files in os.walk(canned_wks_dir):
for fname in files:
if fname == boot_file:
fullpath = os.path.join(canned_wks_dir, fname)
return fullpath
return None
def get_custom_config(boot_file):
"""
Get the custom configuration to be used for the bootloader.
Return None if the file can't be found.
"""
scripts_path = os.path.abspath(os.path.dirname(__file__))
# Get the scripts path of poky
for x in range(0, 3):
scripts_path = os.path.dirname(scripts_path)
cfg_file = find_boot_config(scripts_path, boot_file)
if cfg_file:
with open(cfg_file, "r") as f:
config = f.read()
return config
return None