debian/patches/bugfix/all/stable/gen-patch: Add.

svn path=/dists/trunk/linux-2.6/; revision=8346
This commit is contained in:
Bastian Blank 2007-03-10 11:30:03 +00:00
parent c5006a5029
commit e6dae42314
1 changed files with 54 additions and 0 deletions

54
debian/patches/bugfix/all/stable/gen-patch vendored Executable file
View File

@ -0,0 +1,54 @@
#!/usr/bin/env python
import os.path, re, sys
class Version(object):
_rules = ur"^(\d+\.\d+\.\d+)\.(\d+)$"
_re = re.compile(_rules)
def __init__(self, version):
self.complete = version
match = self._re.match(version)
if match is None:
raise RuntimeError
self.release = match.group(1)
self.patch = int(match.group(2))
class GenPatch(object):
def __init__(self, path, repo, version):
self.path = path
self.repo = repo
self.version = version
def __call__(self):
patch = os.path.join(self.path, self.version.complete)
log = os.path.join(self.path, "%s.log" % self.version.complete)
print patch, log
if self.version.patch == 1:
tag_in = "v%s" % self.version.release
else:
tag_in = "v%s.%d" % (self.version.release, self.version.patch - 1)
tag_out = "v%s" % self.version.complete
print tag_in, tag_out
f = os.popen("cd %s; git diff %s %s | filterdiff -p 1 -x Makefile" % (self.repo, tag_in, tag_out))
out = file(patch, 'w')
for line in f:
out.write(line)
f.close()
f = os.popen("cd %s; git log --pretty=oneline -r %s..%s" % (self.repo, tag_in, tag_out))
out = file(log, 'w')
out.write(" * Add stable release %s:\n" % self.version.complete)
for line in f:
line = line.strip()
if not line:
continue
hash, log = line.split(' ', 1)
out.write(" - %s\n" % log)
f.close()
if __name__ == '__main__':
path = os.path.realpath(os.path.dirname(sys.argv[0]))
repo = sys.argv[1]
for i in sys.argv[2:]:
GenPatch(path, repo, Version(i))()