summaryrefslogtreecommitdiff
path: root/UpdateManager/Common/DistInfo.py
diff options
context:
space:
mode:
Diffstat (limited to 'UpdateManager/Common/DistInfo.py')
-rw-r--r--UpdateManager/Common/DistInfo.py35
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