handle dpkg-parsechangelog errors
authorGuido Günther <agx@sigxcpu.org>
Fri, 23 Jan 2009 17:31:41 +0000 (18:31 +0100)
committerGuido Günther <agx@sigxcpu.org>
Fri, 23 Jan 2009 17:31:41 +0000 (18:31 +0100)
Closes: #512765
gbp/deb_utils.py

index 1c3d95f2e1d31d9ca9c93a1e3af4fb80993c440f..8cebd7fa77eba700c06cf1760930b531460337a1 100644 (file)
@@ -114,14 +114,17 @@ def parse_changelog(changelog):
     if status:
         raise ParseChangeLogError, output
     cp = email.message_from_string(output)
-    if '-' in cp['Version']:
-        upstream_version, cp['Debian-Version'] = cp['Version'].rsplit('-', 1)
-        if ':' in upstream_version:
-            cp['Epoch'], cp['Upstream-Version'] = upstream_version.split(':', 1)
+    try:
+        if '-' in cp['Version']:
+            upstream_version, cp['Debian-Version'] = cp['Version'].rsplit('-', 1)
+            if ':' in upstream_version:
+                cp['Epoch'], cp['Upstream-Version'] = upstream_version.split(':', 1)
+            else:
+                cp['Upstream-Version'] = upstream_version
         else:
-            cp['Upstream-Version'] = upstream_version
-    else:
-        cp['Debian-Version'] = cp['Version']
+            cp['Debian-Version'] = cp['Version']
+    except TypeError:
+        raise ParseChangeLogError, output.split('\n')[0]
     return cp