DscFile: Parse name of debian.tar.gz
authorGuido Günther <agx@sigxcpu.org>
Mon, 25 Jan 2010 19:59:18 +0000 (20:59 +0100)
committerGuido Günther <agx@sigxcpu.org>
Mon, 25 Jan 2010 20:02:21 +0000 (21:02 +0100)
gbp/deb.py

index ac33119..e13aff5 100644 (file)
@@ -34,16 +34,19 @@ class ParseChangeLogError(Exception):
 
 class DscFile(object):
     """Keeps all needed data read from a dscfile"""
-    pkg_re = re.compile('Source:\s+(?P<pkg>.+)\s*')
-    version_re = re.compile("Version:\s((?P<epoch>\d+)\:)?(?P<version>[%s]+)\s*$" % debian_version_chars)
-    tar_re = re.compile('^\s\w+\s\d+\s+(?P<tar>[^_]+_[^_]+(\.orig)?\.tar\.(gz|bz2))')
-    diff_re = re.compile('^\s\w+\s\d+\s+(?P<diff>[^_]+_[^_]+\.diff.(gz|bz2))')
-    format_re = re.compile('Format:\s+(?P<format>[0-9.]+)\s*')
+    compressions = r"(gz|bz2)"
+    pkg_re = re.compile(r'Source:\s+(?P<pkg>.+)\s*')
+    version_re = re.compile(r'Version:\s((?P<epoch>\d+)\:)?(?P<version>[%s]+)\s*$' % debian_version_chars)
+    tar_re = re.compile(r'^\s\w+\s\d+\s+(?P<tar>[^_]+_[^_]+(\.orig)?\.tar\.%s)' % compressions)
+    diff_re = re.compile(r'^\s\w+\s\d+\s+(?P<diff>[^_]+_[^_]+\.diff.(gz|bz2))')
+    deb_tgz_re = re.compile(r'^\s\w+\s\d+\s+(?P<deb_tgz>[^_]+_[^_]+\.debian.tar.%s)' % compressions)
+    format_re = re.compile(r'Format:\s+(?P<format>[0-9.]+)\s*')
 
     def __init__(self, dscfile):
         self.pkg = ""
         self.tgz = ""
         self.diff = ""
+        self.deb_tgz = ""
         self.pkgformat = "1.0"
         self.debian_version = ""
         self.upstream_version = ""
@@ -71,6 +74,10 @@ class DscFile(object):
             if m:
                 self.pkg = m.group('pkg')
                 continue
+            m = self.deb_tgz_re.match(line)
+            if m:
+                self.deb_tgz = os.path.join(fromdir, m.group('deb_tgz'))
+                continue
             m = self.tar_re.match(line)
             if m:
                 self.tgz = os.path.join(fromdir, m.group('tar'))