r568 - lvm2/trunk/debian/bin
Bastian Blank
waldi at alioth.debian.org
Sun Apr 20 18:38:48 UTC 2008
Author: waldi
Date: Sun Apr 20 18:38:48 2008
New Revision: 568
Log:
debian/bin/genorig.py: Update.
Modified:
lvm2/trunk/debian/bin/genorig.py
Modified: lvm2/trunk/debian/bin/genorig.py
==============================================================================
--- lvm2/trunk/debian/bin/genorig.py (original)
+++ lvm2/trunk/debian/bin/genorig.py Sun Apr 20 18:38:48 2008
@@ -2,13 +2,51 @@
import os, os.path, re, shutil, sys
+class Changelog(list):
+ _rules = r"""
+^
+(?P<source>
+ \w[-+0-9a-z.]+
+)
+\
+\(
+(?P<version>
+ [^\(\)\ \t]+
+)
+\)
+\s+
+(?P<distribution>
+ [-+0-9a-zA-Z.]+
+)
+\;
+"""
+ _re = re.compile(_rules, re.X)
+
+ class Entry(object):
+ __slot__ = 'distribution', 'source', 'version'
+
+ def __init__(self, distribution, source, version):
+ self.distribution, self.source, self.version = distribution, source, version
+
+ def __init__(self, dir):
+ f = file(os.path.join(dir, "debian/changelog"))
+ while True:
+ line = f.readline()
+ if not line:
+ break
+ match = self._re.match(line)
+ if not match:
+ continue
+ self.append(self.Entry(match.group('distribution'), match.group('source'), match.group('version')))
+
class GenOrig(object):
log = sys.stdout.write
- source = 'lvm2'
+ def __init__(self, root, orig, input_tar, version):
+ self.orig, self.input_tar, self.version = orig, input_tar, version
- def __init__(self, input_tar, version):
- self.input_tar, self.version = input_tar, version
+ changelog = Changelog(root)
+ self.source = changelog[0].source
def __call__(self):
import tempfile
@@ -24,7 +62,7 @@
def do_upstream(self):
self.log("Extracting tarball %s\n" % self.input_tar)
- match = re.match(r'(^|.*/)(?P<dir>LVM2\.\d+\.\d+\.\d+)\.t(?P<extension>(gz|bz2))$', self.input_tar)
+ match = re.match(r'(^|.*/)(?P<dir>[^/]+)\.(t|tar\.)(?P<extension>(gz|bz2))$', self.input_tar)
if not match:
raise RuntimeError("Can't identify name of tarball")
cmdline = ['tar -xf', self.input_tar, '-C', self.dir]
@@ -38,18 +76,18 @@
os.rename(os.path.join(self.dir, match.group('dir')), os.path.join(self.dir, self.orig_dir))
def do_orig(self):
- out = "../orig/%s" % self.orig_tar
+ self.log("Generating tarball %s\n" % self.orig_tar)
+ out = os.path.join(self.orig, self.orig_tar)
try:
- os.mkdir("../orig")
+ os.mkdir(self.orig)
except OSError: pass
try:
os.stat(out)
except OSError: pass
else:
- raise RuntimeError("Destination already exists")
+ raise RuntimeError("Destination already exists (%s)" % out)
- self.log("Generate tarball %s\n" % out)
cmdline = ['tar -czf', out, '-C', self.dir, self.orig_dir]
try:
if os.spawnv(os.P_WAIT, '/bin/sh', ['sh', '-c', ' '.join(cmdline)]):
@@ -64,11 +102,15 @@
if __name__ == '__main__':
from optparse import OptionParser
- p = OptionParser()
- #p.add_option("-v", "--version", dest = "version")
+ p = OptionParser(usage = "%prog TAR VERSION")
options, args = p.parse_args(sys.argv)
+ if len(args) < 2:
+ raise RuntimeError("Need more arguments")
+
+ root = os.path.realpath(os.path.join(sys.path[0], '..', '..'))
+ orig = os.path.realpath(os.path.join(root, '..', 'orig'))
input_tar = args[1]
version = args[2]
- GenOrig(input_tar, version)()
+ GenOrig(root, orig, input_tar, version)()
More information about the pkg-lvm-commits
mailing list