summaryrefslogtreecommitdiff
path: root/scripts/lib/wic/utils
diff options
context:
space:
mode:
authorMariano Lopez <mariano.lopez@linux.intel.com>2015-12-01 07:14:53 +0000
committerRichard Purdie <richard.purdie@linuxfoundation.org>2015-12-09 08:47:27 +0000
commit356a942e75ac1743290d2c360d1bb89e2225b6cc (patch)
tree8f38a088b1e7a834257d2ba5793fc242fa10f4c6 /scripts/lib/wic/utils
parent8347aee95ea271921c15ea8e580f0ff62325aa26 (diff)
downloadopenembedded-core-356a942e75ac1743290d2c360d1bb89e2225b6cc.tar.gz
openembedded-core-356a942e75ac1743290d2c360d1bb89e2225b6cc.tar.bz2
openembedded-core-356a942e75ac1743290d2c360d1bb89e2225b6cc.zip
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] Signed-off-by: Mariano Lopez <mariano.lopez@linux.intel.com> Signed-off-by: Ross Burton <ross.burton@intel.com>
Diffstat (limited to 'scripts/lib/wic/utils')
-rw-r--r--scripts/lib/wic/utils/misc.py39
1 files changed, 39 insertions, 0 deletions
diff --git a/scripts/lib/wic/utils/misc.py b/scripts/lib/wic/utils/misc.py
index 9d750694df..d886d75b95 100644
--- a/scripts/lib/wic/utils/misc.py
+++ b/scripts/lib/wic/utils/misc.py
@@ -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