summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rwxr-xr-xscripts/combo-layer31
1 files changed, 23 insertions, 8 deletions
diff --git a/scripts/combo-layer b/scripts/combo-layer
index 0f28cfa375..7457ba2c5d 100755
--- a/scripts/combo-layer
+++ b/scripts/combo-layer
@@ -26,7 +26,7 @@ import logging
26import subprocess 26import subprocess
27import ConfigParser 27import ConfigParser
28 28
29__version__ = "0.2.0" 29__version__ = "0.2.1"
30 30
31def logger_create(): 31def logger_create():
32 logger = logging.getLogger("") 32 logger = logging.getLogger("")
@@ -159,7 +159,22 @@ def action_update(conf, args):
159 patch_dir = "patch-%s" % uuid.uuid4() 159 patch_dir = "patch-%s" % uuid.uuid4()
160 os.mkdir(patch_dir) 160 os.mkdir(patch_dir)
161 161
162 for name in conf.repos: 162 repos = []
163 if len(args) > 1:
164 for arg in args[1:]:
165 if arg.startswith('-'):
166 break
167 else:
168 repos.append(arg)
169 for repo in repos:
170 if not repo in conf.repos:
171 logger.error("Specified component '%s' not found in configuration" % repo)
172 sys.exit(0)
173
174 if not repos:
175 repos = conf.repos
176
177 for name in repos:
163 repo = conf.repos[name] 178 repo = conf.repos[name]
164 ldir = repo['local_repo_dir'] 179 ldir = repo['local_repo_dir']
165 dest_dir = repo['dest_dir'] 180 dest_dir = repo['dest_dir']
@@ -228,7 +243,7 @@ def action_update(conf, args):
228 sys.exit(0) 243 sys.exit(0)
229 244
230 # Step 6: apply the generated and revised patch 245 # Step 6: apply the generated and revised patch
231 action_apply_patch(conf, args) 246 apply_patchlist(conf, repos)
232 runcmd("rm -rf %s" % patch_dir) 247 runcmd("rm -rf %s" % patch_dir)
233 248
234 # Step 7: commit the updated config file if it's being tracked 249 # Step 7: commit the updated config file if it's being tracked
@@ -243,11 +258,11 @@ def action_update(conf, args):
243 if output.lstrip().startswith("M"): 258 if output.lstrip().startswith("M"):
244 runcmd('git commit -m "Automatic commit to update last_revision" %s' % relpath) 259 runcmd('git commit -m "Automatic commit to update last_revision" %s' % relpath)
245 260
246def action_apply_patch(conf, args): 261def apply_patchlist(conf, repos):
247 """ 262 """
248 apply the generated patch list to combo repo 263 apply the generated patch list to combo repo
249 """ 264 """
250 for name in conf.repos: 265 for name in repos:
251 repo = conf.repos[name] 266 repo = conf.repos[name]
252 lastrev = repo["last_revision"] 267 lastrev = repo["last_revision"]
253 for line in open(repo['patchlist']): 268 for line in open(repo['patchlist']):
@@ -327,9 +342,9 @@ def main():
327Create and update a combination layer repository from multiple component repositories. 342Create and update a combination layer repository from multiple component repositories.
328 343
329Action: 344Action:
330 init initialise the combo layer repo 345 init initialise the combo layer repo
331 update get patches from component repos and apply them to the combo repo 346 update [components] get patches from component repos and apply them to the combo repo
332 splitpatch [commit] generate commit patch and split per component, default commit is HEAD""") 347 splitpatch [commit] generate commit patch and split per component, default commit is HEAD""")
333 348
334 parser.add_option("-c", "--conf", help = "specify the config file (conf/combo-layer.conf is the default).", 349 parser.add_option("-c", "--conf", help = "specify the config file (conf/combo-layer.conf is the default).",
335 action = "store", dest = "conffile", default = "conf/combo-layer.conf") 350 action = "store", dest = "conffile", default = "conf/combo-layer.conf")