r333 - in branches/rewrite: . src
Otavio Salvador
partial-mirror-devel@lists.alioth.debian.org
Wed, 17 Nov 2004 05:25:35 -0700
Author: otavio
Date: Wed Nov 17 05:25:34 2004
New Revision: 333
Modified:
branches/rewrite/ (props changed)
branches/rewrite/src/Backend.py
Log:
r300@nurf: otavio | 2004-11-17T12:23:41.966220Z
Deal with upgrade. Initial draft.
Modified: branches/rewrite/src/Backend.py
==============================================================================
--- branches/rewrite/src/Backend.py (original)
+++ branches/rewrite/src/Backend.py Wed Nov 17 05:25:34 2004
@@ -55,27 +55,49 @@
item = self._cfg.getOption(key, self._name)
except InvalidOption, msg:
print("[%s] is not present in backend [%s]." % (key, self._name))
- exit(1)
+ raise InvalidOption(self._name, key)
return item
def update (self):
self._dists.update()
def upgrade (self):
+ bin = PackageList()
+ source = PackageList()
+
for f in self._dists.get_index():
# Choose object type
if basename(f) == 'Packages':
pkg = Package
- list = self.__bin
+ list = bin
elif basename(f) == 'Sources':
pkg = SourcePackage
- list = self.__source
+ list = source
+ # Load file on list
parse = apt_pkg.ParseTagFile(open(f, "r"))
- print "Processing", f
+ print "Loading", f
while parse.Step() == 1:
p = pkg(parse.Section)
list.add(p)
+
+ filter = []
+ try:
+ filter = self._cfg.getOption('filter', self._name)
+ except InvalidOption, e:
+ pass
+
+ # Apply filter or use as final list
+ if filter:
+ self.__bin = bin.filter(filter)
+ self.__source = source.filter(filter)
+ else:
+ self.__bin = bin
+ self.__source = source
+
+ self.__bin.resolveDepends(bin)
+
+ print len(self.__bin), len(self.__source)
def remove (self):
""" Remove backend """