diff options
Diffstat (limited to 'patchtracker/DiffGzHandler.py')
-rw-r--r-- | patchtracker/DiffGzHandler.py | 74 |
1 files changed, 0 insertions, 74 deletions
diff --git a/patchtracker/DiffGzHandler.py b/patchtracker/DiffGzHandler.py deleted file mode 100644 index 84be827..0000000 --- a/patchtracker/DiffGzHandler.py +++ /dev/null @@ -1,74 +0,0 @@ -import tempfile -import sys -import os -import stat - -from Patch import Patch, PatchSeries - -class DiffGzException(Exception): - pass - -class DiffGzHandler: - diff = None - def __init__(self,fname): - self.diff = fname - self.size = os.stat(fname)[stat.ST_SIZE] - - def filterdiff(self, include=None, exclude=None): - cmd = ["filterdiff","-z","-p","1"] - if include: - cmd += [ "-i", include] - elif exclude: - cmd += [ "-x", exclude] - else: - raise Exception("DiffGzHandler.filterdiff called w/o include/exclude") - i,o,e=os.popen3(cmd+[self.diff]) - i.close() - p = Patch(o) - err = e.read() - if len(err): - raise DiffGzException("filterdiff gave errors: "+err) - return p - - def debiandir(self): - return self.filterdiff(include='debian/*') - - def nondebiandir(self): - return self.filterdiff(exclude='debian/*') - - def series(self): - patches = None - embedded = self.filterdiff(include='debian/patches*') - - # XXX *cough* cache *cough* - if embedded.lines(): - td = tempfile.mkdtemp() - i,o,e=os.popen3("patch -d %s -p3"%(td)) - i.write(str(embedded)) - i.close() - err = e.read() - if len(err): - raise Exception("unable to extract series patches:\n"+err) - patches = PatchSeries(td) - os.system("rm -rf %s"%(td)) - - return patches - -if __name__ == "__main__": - print "DiffGzHandler testing" - try: - dh = DiffGzHandler(sys.argv[1]) - except IndexError: - print "usage: %s <diffgz>"%(sys.argv[0]) - sys.exit(1) - - print "debian dir:" - print dh.debiandir().diffstat() - print "nondebian dir:" - print dh.nondebiandir().diffstat() - print "series:" - s = dh.series() - print s - for name,patch in s.iterpatches(): - print "patch:",name - print patch.diffstat() |