summaryrefslogtreecommitdiffstats
path: root/manifest_xml.py
diff options
context:
space:
mode:
Diffstat (limited to 'manifest_xml.py')
-rw-r--r--manifest_xml.py32
1 files changed, 29 insertions, 3 deletions
diff --git a/manifest_xml.py b/manifest_xml.py
index 7d02f9d6..d0c9debe 100644
--- a/manifest_xml.py
+++ b/manifest_xml.py
@@ -65,8 +65,8 @@ class XmlManifest(object):
65 65
66 self._Unload() 66 self._Unload()
67 67
68 def Link(self, name): 68 def Override(self, name):
69 """Update the repo metadata to use a different manifest. 69 """Use a different manifest, just for the current instantiation.
70 """ 70 """
71 path = os.path.join(self.manifestProject.worktree, name) 71 path = os.path.join(self.manifestProject.worktree, name)
72 if not os.path.isfile(path): 72 if not os.path.isfile(path):
@@ -80,6 +80,11 @@ class XmlManifest(object):
80 finally: 80 finally:
81 self.manifestFile = old 81 self.manifestFile = old
82 82
83 def Link(self, name):
84 """Update the repo metadata to use a different manifest.
85 """
86 self.Override(name)
87
83 try: 88 try:
84 if os.path.exists(self.manifestFile): 89 if os.path.exists(self.manifestFile):
85 os.remove(self.manifestFile) 90 os.remove(self.manifestFile)
@@ -123,6 +128,12 @@ class XmlManifest(object):
123 root.appendChild(e) 128 root.appendChild(e)
124 root.appendChild(doc.createTextNode('')) 129 root.appendChild(doc.createTextNode(''))
125 130
131 if self._manifest_server:
132 e = doc.createElement('manifest-server')
133 e.setAttribute('url', self._manifest_server)
134 root.appendChild(e)
135 root.appendChild(doc.createTextNode(''))
136
126 sort_projects = list(self.projects.keys()) 137 sort_projects = list(self.projects.keys())
127 sort_projects.sort() 138 sort_projects.sort()
128 139
@@ -169,6 +180,11 @@ class XmlManifest(object):
169 return self._default 180 return self._default
170 181
171 @property 182 @property
183 def manifest_server(self):
184 self._Load()
185 return self._manifest_server
186
187 @property
172 def IsMirror(self): 188 def IsMirror(self):
173 return self.manifestProject.config.GetBoolean('repo.mirror') 189 return self.manifestProject.config.GetBoolean('repo.mirror')
174 190
@@ -178,6 +194,7 @@ class XmlManifest(object):
178 self._remotes = {} 194 self._remotes = {}
179 self._default = None 195 self._default = None
180 self.branch = None 196 self.branch = None
197 self._manifest_server = None
181 198
182 def _Load(self): 199 def _Load(self):
183 if not self._loaded: 200 if not self._loaded:
@@ -247,6 +264,15 @@ class XmlManifest(object):
247 self._default = _Default() 264 self._default = _Default()
248 265
249 for node in config.childNodes: 266 for node in config.childNodes:
267 if node.nodeName == 'manifest-server':
268 url = self._reqatt(node, 'url')
269 if self._manifest_server is not None:
270 raise ManifestParseError, \
271 'duplicate manifest-server in %s' % \
272 (self.manifestFile)
273 self._manifest_server = url
274
275 for node in config.childNodes:
250 if node.nodeName == 'project': 276 if node.nodeName == 'project':
251 project = self._ParseProject(node) 277 project = self._ParseProject(node)
252 if self._projects.get(project.name): 278 if self._projects.get(project.name):
@@ -315,7 +341,7 @@ class XmlManifest(object):
315 def _ParseProject(self, node): 341 def _ParseProject(self, node):
316 """ 342 """
317 reads a <project> element from the manifest file 343 reads a <project> element from the manifest file
318 """ 344 """
319 name = self._reqatt(node, 'name') 345 name = self._reqatt(node, 'name')
320 346
321 remote = self._get_remote(node) 347 remote = self._get_remote(node)