diff options
Diffstat (limited to 'manifest.py')
| -rw-r--r-- | manifest.py | 27 |
1 files changed, 20 insertions, 7 deletions
diff --git a/manifest.py b/manifest.py index 65455687..2ac1453a 100644 --- a/manifest.py +++ b/manifest.py | |||
| @@ -165,6 +165,16 @@ class Manifest(object): | |||
| 165 | (project.name, self.manifestFile) | 165 | (project.name, self.manifestFile) |
| 166 | self._projects[project.name] = project | 166 | self._projects[project.name] = project |
| 167 | 167 | ||
| 168 | for node in config.childNodes: | ||
| 169 | if node.nodeName == 'add-remote': | ||
| 170 | pn = self._reqatt(node, 'to-project') | ||
| 171 | project = self._projects.get(pn) | ||
| 172 | if not project: | ||
| 173 | raise ManifestParseError, \ | ||
| 174 | 'project %s not defined in %s' % \ | ||
| 175 | (pn, self.manifestFile) | ||
| 176 | self._ParseProjectExtraRemote(project, node) | ||
| 177 | |||
| 168 | def _AddMetaProjectMirror(self, m): | 178 | def _AddMetaProjectMirror(self, m): |
| 169 | name = None | 179 | name = None |
| 170 | m_url = m.GetRemote(m.remote.name).url | 180 | m_url = m.GetRemote(m.remote.name).url |
| @@ -281,18 +291,21 @@ class Manifest(object): | |||
| 281 | 291 | ||
| 282 | for n in node.childNodes: | 292 | for n in node.childNodes: |
| 283 | if n.nodeName == 'remote': | 293 | if n.nodeName == 'remote': |
| 284 | r = self._ParseRemote(n) | 294 | self._ParseProjectExtraRemote(project, n) |
| 285 | if project.extraRemotes.get(r.name) \ | ||
| 286 | or project.remote.name == r.name: | ||
| 287 | raise ManifestParseError, \ | ||
| 288 | 'duplicate remote %s in project %s in %s' % \ | ||
| 289 | (r.name, project.name, self.manifestFile) | ||
| 290 | project.extraRemotes[r.name] = r | ||
| 291 | elif n.nodeName == 'copyfile': | 295 | elif n.nodeName == 'copyfile': |
| 292 | self._ParseCopyFile(project, n) | 296 | self._ParseCopyFile(project, n) |
| 293 | 297 | ||
| 294 | return project | 298 | return project |
| 295 | 299 | ||
| 300 | def _ParseProjectExtraRemote(self, project, n): | ||
| 301 | r = self._ParseRemote(n) | ||
| 302 | if project.extraRemotes.get(r.name) \ | ||
| 303 | or project.remote.name == r.name: | ||
| 304 | raise ManifestParseError, \ | ||
| 305 | 'duplicate remote %s in project %s in %s' % \ | ||
| 306 | (r.name, project.name, self.manifestFile) | ||
| 307 | project.extraRemotes[r.name] = r | ||
| 308 | |||
| 296 | def _ParseCopyFile(self, project, node): | 309 | def _ParseCopyFile(self, project, node): |
| 297 | src = self._reqatt(node, 'src') | 310 | src = self._reqatt(node, 'src') |
| 298 | dest = self._reqatt(node, 'dest') | 311 | dest = self._reqatt(node, 'dest') |
