diff options
author | Sean Finney <seanius@debian.org> | 2010-05-13 19:44:10 +0200 |
---|---|---|
committer | Sean Finney <seanius@debian.org> | 2010-05-13 19:44:10 +0200 |
commit | 111d00872efd9a6a88435748c2f3b740fba38c2f (patch) | |
tree | 424066e57e741e7a460d3b60709c569e6beeb02a /patchtracker/DiffGzHandler.py | |
parent | e3e23ba7197588bb98ea589f693f7fc59cc5eb2a (diff) | |
download | patch-tracker-111d00872efd9a6a88435748c2f3b740fba38c2f.tar.gz |
Move the diffhandlers into the Patch library.
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() |