diff options
Diffstat (limited to 'UpdateManager/Common/DistInfo.py')
| -rw-r--r-- | UpdateManager/Common/DistInfo.py | 35 |
1 files changed, 25 insertions, 10 deletions
diff --git a/UpdateManager/Common/DistInfo.py b/UpdateManager/Common/DistInfo.py index 79d5356c..57621f52 100644 --- a/UpdateManager/Common/DistInfo.py +++ b/UpdateManager/Common/DistInfo.py @@ -24,8 +24,9 @@ import os import gettext from os import getenv import ConfigParser +import string -_ = gettext.gettext +from gettext import gettext as _ class Suite: def __init__(self): @@ -38,6 +39,7 @@ class Suite: self.components = {} self.children = [] self.match_uri = None + self.valid_mirrors = [] self.distribution = None self.available = True @@ -46,7 +48,6 @@ class Component: self.name = "" self.description = "" self.description_long = "" - self.enabled = None class DistInfo: def __init__(self, @@ -83,7 +84,7 @@ class DistInfo: if suite: if component: suite.components["%s" % component.name] = \ - (component.description, component.enabled, + (component.description, component.description_long) component = None self.suites.append (suite) @@ -98,6 +99,13 @@ class DistInfo: for nanny in self.suites: if nanny.name == value: nanny.children.append(suite) + # reuse some properties of the parent suite + if suite.match_uri == None: + suite.match_uri = nanny.match_uri + if suite.valid_mirrors == None: + suite.valid_mirrors = nanny.valid_mirrors + if suite.base_uri == None: + suite.base_uri = nanny.base_uri elif field == 'Available': suite.available = value elif field == 'RepositoryType': @@ -107,17 +115,24 @@ class DistInfo: suite.match_uri = value elif field == 'MatchURI': suite.match_uri = value + elif field == 'MirrorsFile': + if os.path.exists(value): + suite.valid_mirrors = filter(lambda s: + ((s != "") and + (not s.startswith("#"))), + map(string.strip, + open(value))) + else: + print "WARNING: can't read '%s'" % value elif field == 'Description': suite.description = _(value) elif field == 'Component': if component: suite.components["%s" % component.name] = \ - (component.description, component.enabled, + (component.description, component.description_long) component = Component () component.name = value - elif field == 'Enabled': - component.enabled = bool(int(value)) elif field == 'CompDescription': component.description = _(value) elif field == 'CompDescriptionLong': @@ -125,7 +140,7 @@ class DistInfo: if suite: if component: suite.components["%s" % component.name] = \ - (component.description, component.enabled, + (component.description, component.description_long) component = None self.suites.append (suite) @@ -133,17 +148,17 @@ class DistInfo: if __name__ == "__main__": - d = DistInfo ("Ubuntu", "../../channels") + d = DistInfo ("Ubuntu", "../../data/channels") print d.changelogs_uri for suite in d.suites: print "\nSuite: %s" % suite.name print "Desc: %s" % suite.description print "BaseURI: %s" % suite.base_uri print "MatchURI: %s" % suite.match_uri + print "Mirrors: %s" % suite.valid_mirrors for component in suite.components: print " %s - %s - %s - %s" % (component, suite.components[component][0], - suite.components[component][1], - suite.components[component][2]) + suite.components[component][1]) for child in suite.children: print " %s" % child.description |
