Ejemplo n.º 1
0
    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)
Ejemplo n.º 2
0
    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
Ejemplo n.º 3
0
    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)
Ejemplo n.º 4
0
 def remoteName(self):
     ""
     return gititf.repo_name_from_url(self.url)