diff options
Diffstat (limited to 'manifest_xml.py')
| -rw-r--r-- | manifest_xml.py | 12 |
1 files changed, 8 insertions, 4 deletions
diff --git a/manifest_xml.py b/manifest_xml.py index 476472fb..02a5f9ae 100644 --- a/manifest_xml.py +++ b/manifest_xml.py | |||
| @@ -46,16 +46,20 @@ class _XmlRemote(object): | |||
| 46 | self.fetchUrl = fetch | 46 | self.fetchUrl = fetch |
| 47 | self.manifestUrl = manifestUrl | 47 | self.manifestUrl = manifestUrl |
| 48 | self.reviewUrl = review | 48 | self.reviewUrl = review |
| 49 | self.resolvedFetchUrl = self._resolveFetchUrl() | ||
| 49 | 50 | ||
| 50 | def ToRemoteSpec(self, projectName): | 51 | def _resolveFetchUrl(self): |
| 51 | url = self.fetchUrl.rstrip('/') + '/' + projectName + '.git' | 52 | url = self.fetchUrl.rstrip('/') |
| 52 | manifestUrl = self.manifestUrl.rstrip('/') | 53 | manifestUrl = self.manifestUrl.rstrip('/') |
| 53 | # urljoin will get confused if there is no scheme in the base url | 54 | # urljoin will get confused if there is no scheme in the base url |
| 54 | # ie, if manifestUrl is of the form <hostname:port> | 55 | # ie, if manifestUrl is of the form <hostname:port> |
| 55 | if manifestUrl.find(':') != manifestUrl.find('/') - 1: | 56 | if manifestUrl.find(':') != manifestUrl.find('/') - 1: |
| 56 | manifestUrl = 'gopher://' + manifestUrl | 57 | manifestUrl = 'gopher://' + manifestUrl |
| 57 | url = urlparse.urljoin(manifestUrl, url) | 58 | url = urlparse.urljoin(manifestUrl, url) |
| 58 | url = re.sub(r'^gopher://', '', url) | 59 | return re.sub(r'^gopher://', '', url) |
| 60 | |||
| 61 | def ToRemoteSpec(self, projectName): | ||
| 62 | url = self.resolvedFetchUrl + '/' + projectName | ||
| 59 | return RemoteSpec(self.name, url, self.reviewUrl) | 63 | return RemoteSpec(self.name, url, self.reviewUrl) |
| 60 | 64 | ||
| 61 | class XmlManifest(object): | 65 | class XmlManifest(object): |
| @@ -368,7 +372,7 @@ class XmlManifest(object): | |||
| 368 | raise ManifestParseError, 'refusing to mirror %s' % m_url | 372 | raise ManifestParseError, 'refusing to mirror %s' % m_url |
| 369 | 373 | ||
| 370 | if self._default and self._default.remote: | 374 | if self._default and self._default.remote: |
| 371 | url = self._default.remote.fetchUrl | 375 | url = self._default.remote.resolvedFetchUrl |
| 372 | if not url.endswith('/'): | 376 | if not url.endswith('/'): |
| 373 | url += '/' | 377 | url += '/' |
| 374 | if m_url.startswith(url): | 378 | if m_url.startswith(url): |
