3
import os, os.path, re, shutil, sys
10
def __init__(self, input_tar, version):
11
self.input_tar, self.version = input_tar, version
15
self.dir = tempfile.mkdtemp(prefix = 'genorig', dir = 'debian')
17
self.orig_dir = "%s-%s" % (self.source, self.version)
18
self.orig_tar = "%s_%s.orig.tar.gz" % (self.source, self.version)
23
shutil.rmtree(self.dir)
25
def do_upstream(self):
26
self.log("Extracting tarball %s\n" % self.input_tar)
27
match = re.match(r'(^|.*/)(?P<dir>device-mapper\.\d+\.\d+\.\d+)\.t(?P<extension>(gz|bz2))$', self.input_tar)
29
raise RuntimeError("Can't identify name of tarball")
30
cmdline = ['tar -xf', self.input_tar, '-C', self.dir]
31
extension = match.group('extension')
32
if extension == 'bz2':
34
elif extension == 'gz':
36
if os.spawnv(os.P_WAIT, '/bin/sh', ['sh', '-c', ' '.join(cmdline)]):
37
raise RuntimeError("Can't extract tarball")
38
os.rename(os.path.join(self.dir, match.group('dir')), os.path.join(self.dir, self.orig_dir))
41
out = "../orig/%s" % self.orig_tar
50
raise RuntimeError("Destination already exists")
52
self.log("Generate tarball %s\n" % out)
53
cmdline = ['tar -czf', out, '-C', self.dir, self.orig_dir]
55
if os.spawnv(os.P_WAIT, '/bin/sh', ['sh', '-c', ' '.join(cmdline)]):
56
raise RuntimeError("Can't patch source")
65
if __name__ == '__main__':
66
from optparse import OptionParser
68
#p.add_option("-v", "--version", dest = "version")
69
options, args = p.parse_args(sys.argv)
74
GenOrig(input_tar, version)()