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 |
