diff options
author | Tom Zanussi <tom.zanussi@intel.com> | 2012-12-12 22:56:36 -0600 |
---|---|---|
committer | Richard Purdie <richard.purdie@linuxfoundation.org> | 2012-12-13 16:54:33 +0000 |
commit | be93447bef5569643d28eaac183bc7275d485847 (patch) | |
tree | c34c938dafcfd7e929496370c4cc2d5049765fa1 /scripts/lib | |
parent | 125eb6f390b4882778f1a5179dca5f78675e19e5 (diff) | |
download | ast2050-yocto-poky-be93447bef5569643d28eaac183bc7275d485847.zip ast2050-yocto-poky-be93447bef5569643d28eaac183bc7275d485847.tar.gz |
yocto-kernel: create open_user_file() wrapper function
With the addition of custom kernels, we can no longer rely on a
hard-coded /files directory for BSPs - we need to be able to find the
user_config/patches files in a number of different directories.
We now hide the search inside a new open_user_file() function that
accomplishes the same thing as before but with a more flexible scope.
(From meta-yocto rev: 26a7032553e8d8691239368f0f994f948db06eed)
Signed-off-by: Tom Zanussi <tom.zanussi@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Diffstat (limited to 'scripts/lib')
-rw-r--r-- | scripts/lib/bsp/kernel.py | 45 |
1 files changed, 28 insertions, 17 deletions
diff --git a/scripts/lib/bsp/kernel.py b/scripts/lib/bsp/kernel.py index a953372..0b7e69b 100644 --- a/scripts/lib/bsp/kernel.py +++ b/scripts/lib/bsp/kernel.py @@ -133,6 +133,30 @@ def gen_choices_str(choices): return choices_str +def open_user_file(scripts_path, machine, userfile, mode): + """ + Find one of the user files (user-config.cfg, user-patches.scc) + associated with the machine (could be in files/, + linux-yocto-custom/, etc). Returns the open file if found, None + otherwise. + + The caller is responsible for closing the file returned. + """ + layer = find_bsp_layer(scripts_path, machine) + linuxdir = os.path.join(layer, "recipes-kernel/linux") + linuxdir_list = os.listdir(linuxdir) + for fileobj in linuxdir_list: + fileobj_path = os.path.join(linuxdir, fileobj) + if os.path.isdir(fileobj_path): + userfile_name = os.path.join(fileobj_path, userfile) + try: + f = open(userfile_name, mode) + return f + except IOError: + continue + return None + + def read_config_items(scripts_path, machine): """ Find and return a list of config items (CONFIG_XXX) in a machine's @@ -140,10 +164,7 @@ def read_config_items(scripts_path, machine): """ config_items = [] - layer = find_bsp_layer(scripts_path, machine) - cfg = os.path.join(layer, "recipes-kernel/linux/files/user-config.cfg") - - f = open(cfg, "r") + f = open_user_file(scripts_path, machine, "user-config.cfg", "r") lines = f.readlines() for line in lines: s = line.strip() @@ -159,10 +180,7 @@ def write_config_items(scripts_path, machine, config_items): Write (replace) the list of config items (CONFIG_XXX) in a machine's user-defined config fragment [user-config.cfg]. """ - layer = find_bsp_layer(scripts_path, machine) - cfg = os.path.join(layer, "recipes-kernel/linux/files/user-config.cfg") - - f = open(cfg, "w") + f = open_user_file(scripts_path, machine, "user-config.cfg", "w") for item in config_items: f.write(item + "\n") f.close() @@ -377,10 +395,7 @@ def read_patch_items(scripts_path, machine): """ patch_items = [] - layer = find_bsp_layer(scripts_path, machine) - patches = os.path.join(layer, "recipes-kernel/linux/files/user-patches.scc") - - f = open(patches, "r") + f = open_user_file(scripts_path, machine, "user-patches.scc", "r") lines = f.readlines() for line in lines: s = line.strip() @@ -399,11 +414,7 @@ def write_patch_items(scripts_path, machine, patch_items): Write (replace) the list of patches in a machine's user-defined patch list [user-patches.scc]. """ - layer = find_bsp_layer(scripts_path, machine) - - patches = os.path.join(layer, "recipes-kernel/linux/files/user-patches.scc") - - f = open(patches, "w") + f = open_user_file(scripts_path, machine, "user-patches.scc", "w") for item in patch_items: pass # this currently breaks do_patch, but is really what we want |