diff options
author | Sean Finney <seanius@debian.org> | 2008-06-09 22:02:21 +0200 |
---|---|---|
committer | Sean Finney <seanius@debian.org> | 2008-06-09 22:02:21 +0200 |
commit | a17825f498f1e9604b0a496d163e041e7ef082b3 (patch) | |
tree | ed43aa9a04f95a952d52b779969e4b2bd0ad2dd2 /patchtracker/SourceArchive.py | |
parent | f7dc889bb878ade9895122ec73a42cef491b9985 (diff) | |
download | patch-tracker-a17825f498f1e9604b0a496d163e041e7ef082b3.tar.gz |
add cmdline opts for selective pkg/suite processing
Diffstat (limited to 'patchtracker/SourceArchive.py')
-rwxr-xr-x | patchtracker/SourceArchive.py | 22 |
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 |