summaryrefslogtreecommitdiff
path: root/patchtracker/DiffGzHandler.py
diff options
context:
space:
mode:
Diffstat (limited to 'patchtracker/DiffGzHandler.py')
-rw-r--r--patchtracker/DiffGzHandler.py74
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()