diff options
-rw-r--r-- | command.py | 6 | ||||
-rw-r--r-- | manifest_loader.py | 12 |
2 files changed, 12 insertions, 6 deletions
@@ -62,8 +62,10 @@ class Command(object): | |||
62 | def manifest(self): | 62 | def manifest(self): |
63 | return self.GetManifest() | 63 | return self.GetManifest() |
64 | 64 | ||
65 | def GetManifest(self, reparse=False): | 65 | def GetManifest(self, reparse=False, type=None): |
66 | return manifest_loader.GetManifest(self.repodir, reparse) | 66 | return manifest_loader.GetManifest(self.repodir, |
67 | reparse=reparse, | ||
68 | type=type) | ||
67 | 69 | ||
68 | def GetProjects(self, args, missing_ok=False): | 70 | def GetProjects(self, args, missing_ok=False): |
69 | """A list of projects that match the arguments. | 71 | """A list of projects that match the arguments. |
diff --git a/manifest_loader.py b/manifest_loader.py index 85ad3ea1..1ce1c1f3 100644 --- a/manifest_loader.py +++ b/manifest_loader.py | |||
@@ -15,13 +15,17 @@ | |||
15 | 15 | ||
16 | from manifest_xml import XmlManifest | 16 | from manifest_xml import XmlManifest |
17 | 17 | ||
18 | def ParseManifest(repodir): | 18 | def ParseManifest(repodir, type=None): |
19 | if type: | ||
20 | return type(repodir) | ||
19 | return XmlManifest(repodir) | 21 | return XmlManifest(repodir) |
20 | 22 | ||
21 | _manifest = None | 23 | _manifest = None |
22 | 24 | ||
23 | def GetManifest(repodir, reparse=False): | 25 | def GetManifest(repodir, reparse=False, type=None): |
24 | global _manifest | 26 | global _manifest |
25 | if _manifest is None or reparse: | 27 | if _manifest is None \ |
26 | _manifest = ParseManifest(repodir) | 28 | or reparse \ |
29 | or (type and _manifest.__class__ != type): | ||
30 | _manifest = ParseManifest(repodir, type=type) | ||
27 | return _manifest | 31 | return _manifest |