def loadManifestsAndRemoteMap(self, mfest, rmap, toplevel): "" groupname = '' for url in self.urls: name = gititf.repo_name_from_url(url) mfest.addRepo(groupname, name, name) for url in self.urls: name = gititf.repo_name_from_url(url) rmap.setRepoLocation(name, url=url)
def fromSingleURL(self, cfg): "" url = self.urls[0] wrkdir = self.tmpdir.path() try: # prefer a .mrgit repo under the given url verb = max(0, self.verbose - 1) git = temp_clone(url + '/.mrgit', wrkdir, verb) except gititf.GitInterfaceError: git = None if git == None: # that failed, so just clone the given url try: git = temp_clone(url, wrkdir, self.verbose) except gititf.GitInterfaceError: errorexit('failed to clone', url) upstream = check_for_mrgit_repo(git) if upstream: # we just cloned an mrgit or genesis repo # move the clone so it becomes the .mrgit directory mrgit = wrkdir + '/.mrgit' assert not os.path.islink(mrgit) and not os.path.exists(mrgit) os.rename(git.get_toplevel(), mrgit) top = self._populate_config_and_mrgit_repo(cfg, upstream) elif is_google_manfiests_repo(git.get_toplevel()): # we just cloned a Google manifests repo upstream = GoogleConverter(git.get_toplevel()) top = self._populate_config_and_mrgit_repo(cfg, upstream) dst = pjoin(wrkdir, '.mrgit', 'google_manifests') move_directory_contents(git.get_toplevel(), dst) else: # not an mrgit, genesis or Google repo, just a generic repository if self.grpname != None: errorexit('cannot specify repo group for a list of URLs') # move the clone to a directory with the name of the upstream URL loc = pjoin(wrkdir, gititf.repo_name_from_url(url)) move_directory_contents(git.get_toplevel(), loc) upstream = UpstreamURLs([url]) top = self._populate_config_and_mrgit_repo(cfg, upstream) return top
def createFromURLs(self, urls): "" groupname = None for i, url in enumerate(urls): name = gititf.repo_name_from_url(url) if i == 0: groupname = name path = '.' else: path = name self.mfest.addRepo(groupname, name, path) self.remote.setRepoLocation(name, url=url)
def remoteName(self): "" return gititf.repo_name_from_url(self.url)