summaryrefslogtreecommitdiffstats
path: root/scripts/combo-layer
diff options
context:
space:
mode:
Diffstat (limited to 'scripts/combo-layer')
-rwxr-xr-xscripts/combo-layer20
1 files changed, 13 insertions, 7 deletions
diff --git a/scripts/combo-layer b/scripts/combo-layer
index 330faca389..65435db8c0 100755
--- a/scripts/combo-layer
+++ b/scripts/combo-layer
@@ -174,25 +174,31 @@ def action_init(conf, args):
174 if not os.path.exists(ldir): 174 if not os.path.exists(ldir):
175 logger.info("cloning %s to %s" %(conf.repos[name]['src_uri'], ldir)) 175 logger.info("cloning %s to %s" %(conf.repos[name]['src_uri'], ldir))
176 subprocess.check_call("git clone %s %s" % (conf.repos[name]['src_uri'], ldir), shell=True) 176 subprocess.check_call("git clone %s %s" % (conf.repos[name]['src_uri'], ldir), shell=True)
177 branch = conf.repos[name].get('branch', "master")
178 runcmd("git checkout %s" % branch, ldir)
179 if not os.path.exists(".git"): 177 if not os.path.exists(".git"):
180 runcmd("git init") 178 runcmd("git init")
181 for name in conf.repos: 179 for name in conf.repos:
182 repo = conf.repos[name] 180 repo = conf.repos[name]
183 ldir = repo['local_repo_dir'] 181 ldir = repo['local_repo_dir']
184 logger.info("copying data from %s..." % name) 182 branch = repo.get('branch', "master")
183 lastrev = repo.get('last_revision', None)
184 if lastrev and lastrev != "HEAD":
185 initialrev = lastrev
186 logger.info("Copying data from %s at specified revision %s..." % (name, lastrev))
187 else:
188 lastrev = None
189 initialrev = branch
190 logger.info("Copying data from %s..." % name)
185 dest_dir = repo['dest_dir'] 191 dest_dir = repo['dest_dir']
186 if dest_dir and dest_dir != ".": 192 if dest_dir and dest_dir != ".":
187 extract_dir = os.path.join(os.getcwd(), dest_dir) 193 extract_dir = os.path.join(os.getcwd(), dest_dir)
188 os.makedirs(extract_dir) 194 os.makedirs(extract_dir)
189 else: 195 else:
190 extract_dir = os.getcwd() 196 extract_dir = os.getcwd()
191 branch = repo.get('branch', "master")
192 file_filter = repo.get('file_filter', "") 197 file_filter = repo.get('file_filter', "")
193 runcmd("git archive %s | tar -x -C %s %s" % (branch, extract_dir, file_filter), ldir) 198 runcmd("git archive %s | tar -x -C %s %s" % (initialrev, extract_dir, file_filter), ldir)
194 lastrev = runcmd("git rev-parse %s" % branch, ldir).strip() 199 if not lastrev:
195 conf.update(name, "last_revision", lastrev, initmode=True) 200 lastrev = runcmd("git rev-parse %s" % initialrev, ldir).strip()
201 conf.update(name, "last_revision", lastrev, initmode=True)
196 runcmd("git add .") 202 runcmd("git add .")
197 if conf.localconffile: 203 if conf.localconffile:
198 localadded = True 204 localadded = True