def fetch(self): try: fetcher = get_fetcher(self.url) except FetchError: # We might be passing a local dir path directly # which fetchers don't currently support self.directory = path(self.url) self.revision = RepoFetcher(self.url).get_revision(self.url) else: if hasattr(fetcher, "path") and fetcher.path.exists(): self.directory = path(fetcher.path) else: if not self.target_repo.exists(): self.target_repo.makedirs_p() self.directory = path(fetcher.fetch(self.target_repo)) self.fetched = True self.revision = fetcher.get_revision(self.directory) if not self.directory.exists(): raise BuildError("Unable to locate {}. " "Do you need to set {}?".format( self.url, self.ENVIRON)) if self.config_file: self.config_file = self.directory / self.config_file if self.old_config_file: self.old_config_file = self.directory / self.old_config_file self._name = self.config.name return self
def fetch(self): try: # In order to lock the fetcher we need to adjust the self.url # to get the right thing. Curiously, self.url is actually # "layer:something" here, and so we can match on that. if self.lock: url = make_url_from_lock_for_layer(self.lock, self.use_branches) else: url = self.url fetcher = get_fetcher(url) except FetchError: # We might be passing a local dir path directly # which fetchers don't currently support self.directory = path(self.url) self.revision = RepoFetcher(self.url).get_revision(self.url) else: if hasattr(fetcher, "path") and fetcher.path.exists(): self.directory = path(fetcher.path) else: if not self.target_repo.exists(): self.target_repo.makedirs_p() self.directory = path(fetcher.fetch(self.target_repo)) self.fetched = True self.fetched_url = getattr(fetcher, "fetched_url", None) self.vcs = getattr(fetcher, "vcs", None) self.revision = fetcher.get_revision(self.directory) self.branch = fetcher.get_branch_for_revision( self.directory, self.revision) if not self.directory.exists(): raise BuildError("Unable to locate {}. " "Do you need to set {}?".format( self.url, self.ENVIRON)) if self.config_file: self.config_file = self.directory / self.config_file if self.old_config_file: self.old_config_file = self.directory / self.old_config_file self._name = self.config.name return self