summaryrefslogtreecommitdiffstats
path: root/scripts
diff options
context:
space:
mode:
Diffstat (limited to 'scripts')
-rwxr-xr-xscripts/oe-setup-layers15
1 files changed, 15 insertions, 0 deletions
diff --git a/scripts/oe-setup-layers b/scripts/oe-setup-layers
index 6d49688a32..bee4ef0fec 100755
--- a/scripts/oe-setup-layers
+++ b/scripts/oe-setup-layers
@@ -49,11 +49,24 @@ def _is_repo_at_remote_uri(repodir, remote, uri):
49def _contains_submodules(repodir): 49def _contains_submodules(repodir):
50 return os.path.exists(os.path.join(repodir,".gitmodules")) 50 return os.path.exists(os.path.join(repodir,".gitmodules"))
51 51
52def _write_layer_list(dest, repodirs):
53 layers = []
54 for r in repodirs:
55 for root, dirs, files in os.walk(r):
56 if os.path.basename(root) == 'conf' and 'layer.conf' in files:
57 layers.append(os.path.relpath(os.path.dirname(root), dest))
58 layers_f = os.path.join(dest, ".oe-layers.json")
59 print("Writing list of layers into {}".format(layers_f))
60 with open(layers_f, 'w') as f:
61 json.dump({"version":"1.0","layers":layers}, f, sort_keys=True, indent=4)
62
52def _do_checkout(args, json): 63def _do_checkout(args, json):
53 repos = json['sources'] 64 repos = json['sources']
65 repodirs = []
54 for r_name in repos: 66 for r_name in repos:
55 r_data = repos[r_name] 67 r_data = repos[r_name]
56 repodir = os.path.abspath(os.path.join(args['destdir'], r_data['path'])) 68 repodir = os.path.abspath(os.path.join(args['destdir'], r_data['path']))
69 repodirs.append(repodir)
57 70
58 if 'contains_this_file' in r_data.keys(): 71 if 'contains_this_file' in r_data.keys():
59 force_arg = 'force_bootstraplayer_checkout' 72 force_arg = 'force_bootstraplayer_checkout'
@@ -96,6 +109,8 @@ def _do_checkout(args, json):
96 if _contains_submodules(repodir): 109 if _contains_submodules(repodir):
97 print("Repo {} contains submodules, use 'git submodule update' to ensure they are up to date".format(repodir)) 110 print("Repo {} contains submodules, use 'git submodule update' to ensure they are up to date".format(repodir))
98 111
112 _write_layer_list(args['destdir'], repodirs)
113
99parser = argparse.ArgumentParser(description="A self contained python script that fetches all the needed layers and sets them to correct revisions using data in a json format from a separate file. The json data can be created from an active build directory with 'bitbake-layers create-layers-setup destdir' and there's a sample file and a schema in meta/files/") 114parser = argparse.ArgumentParser(description="A self contained python script that fetches all the needed layers and sets them to correct revisions using data in a json format from a separate file. The json data can be created from an active build directory with 'bitbake-layers create-layers-setup destdir' and there's a sample file and a schema in meta/files/")
100 115
101parser.add_argument('--force-bootstraplayer-checkout', action='store_true', 116parser.add_argument('--force-bootstraplayer-checkout', action='store_true',