summaryrefslogtreecommitdiff
path: root/patchtracker/SourceArchive.py
diff options
context:
space:
mode:
authorSean Finney <seanius@debian.org>2008-06-09 22:02:21 +0200
committerSean Finney <seanius@debian.org>2008-06-09 22:02:21 +0200
commita17825f498f1e9604b0a496d163e041e7ef082b3 (patch)
treeed43aa9a04f95a952d52b779969e4b2bd0ad2dd2 /patchtracker/SourceArchive.py
parentf7dc889bb878ade9895122ec73a42cef491b9985 (diff)
downloadpatch-tracker-a17825f498f1e9604b0a496d163e041e7ef082b3.tar.gz
add cmdline opts for selective pkg/suite processing
Diffstat (limited to 'patchtracker/SourceArchive.py')
-rwxr-xr-xpatchtracker/SourceArchive.py22
1 files changed, 18 insertions, 4 deletions
diff --git a/patchtracker/SourceArchive.py b/patchtracker/SourceArchive.py
index abeabbb..5afcd10 100755
--- a/patchtracker/SourceArchive.py
+++ b/patchtracker/SourceArchive.py
@@ -15,9 +15,16 @@ class Archive:
self.root = dir
self.distsdir = os.sep.join([dir, "dists"])
- def suites(self):
+ def suites(self, filter=None):
for s in os.listdir(self.distsdir):
- yield s
+ if not filter:
+ yield s
+ else:
+ try:
+ filter.index(s)
+ yield s
+ except:
+ pass
def components(self, suite):
f = file(self.distsdir + os.sep + os.sep.join([suite, "Release"]))
@@ -25,10 +32,17 @@ class Archive:
for comp in rel['Components'].split(' '):
yield comp
- def sourcepackages(self, suite, component):
+ def sourcepackages(self, suite, component, filter=None):
sfile=os.sep.join([self.distsdir,suite,component,"/source/Sources.gz"])
for ent in deb822.Sources.iter_paragraphs(GzipFile(sfile)):
- yield SourcePackage(ent)
+ if not filter:
+ yield SourcePackage(ent)
+ else:
+ try:
+ filter.index(ent['Package'])
+ yield SourcePackage(ent)
+ except:
+ pass
def __str__(self):
return "Archive rooted at "+self.root