import sys import os import errno from glob import glob class Patch: p = [] def __init__(self, fh): self.p = fh.readlines() def __str__(self): return "".join(self.p) def lines(self): return len(self.p) class PatchSeries (list): style = "simple" names = [] patches = {} def __init__(self, dir): fd = None try: fd = file(os.sep.join([dir, "00list"])) self.style = "dpatch" except IOError, e: if e.errno != errno.ENOENT: raise e try: fd = file(os.sep.join([dir, "series"])) self.style = "quilt" except IOError, e: if e.errno != errno.ENOENT: raise e if fd: self.names = [n.rstrip() for n in fd.readlines()] else: self.names = os.listdir(dir) self.names.sort() for p in self.names: self.patches[p] = Patch(file(os.sep.join([dir, p]))) def __getitem__(self, y): return self.patches[self.names[y]] def __len__(self): return len(self.names) def fetch(self, name): return self.patches[name] def __str__(self): return "\n".join(self.names) if __name__ == "__main__": print "Patch.py testing" try: p = Patch(file(sys.argv[1])) print "patch contents:" print p except IndexError: print "usage: %s "