silence parse_dsc and move sanity checks into DscFile
authorGuido Guenther <agx@sigxcpu.org>
Thu, 2 Oct 2008 09:29:02 +0000 (11:29 +0200)
committerGuido Guenther <agx@sigxcpu.org>
Thu, 2 Oct 2008 10:26:37 +0000 (12:26 +0200)
makes git-import-dsc{,s} less chatty

gbp/deb_utils.py
git-import-dsc

index a39ec9c..1c3d95f 100644 (file)
@@ -37,8 +37,11 @@ class DscFile(object):
         self.pkg = ""
         self.tgz = ""
         self.diff = ""
+        self.debian_version = ""
         self.upstream_version = ""
+        self.native = False
         self.dscfile = os.path.abspath(dscfile)
+
         f = file(self.dscfile)
         fromdir = os.path.dirname(os.path.abspath(dscfile))
         for line in f:
@@ -69,10 +72,15 @@ class DscFile(object):
                 self.diff = os.path.join(fromdir, m.group('diff'))
                 continue
         f.close()
+
         if not self.pkg:
-            raise GbpError, "Cannot parse package name from %s" % self.dscfile
+            raise GbpError, "Cannot parse package name from '%s'" % self.dscfile
         elif not self.tgz:
-            raise GbpError, "Cannot parse archive name from %s" % self.dscfile
+            raise GbpError, "Cannot parse archive name from '%s'" % self.dscfile
+        if not self.upstream_version:
+            raise GbpError, "Cannot parse version number from '%s'" % self.dscfile
+        if not self.native and not self.debian_version:
+            raise GbpError, "Cannot parse Debian version number from '%s'" % self.dscfile
 
     def _get_version(self):
         version = [ "", self.epoch + ":" ][len(self.epoch) > 0]
@@ -94,18 +102,7 @@ def parse_dsc(dscfile):
         dsc = DscFile(dscfile)
     except IOError, err:
         raise GbpError, "Error reading dsc file: %s" % err
-    else:
-        try:
-            if dsc.native:
-                print "Debian Native Package"
-                print "Version:", dsc.upstream_version
-            else:
-                print "Upstream version:", dsc.upstream_version
-                print "Debian version:", dsc.debian_version
-            if dsc.epoch:
-                print "Epoch: %s" % dsc.epoch
-        except AttributeError:
-            raise GbpError, "Error parsing dsc file %s" % dscfile
+
     return dsc
 
 
index 4755efd..0f5e854 100755 (executable)
@@ -123,6 +123,17 @@ def create_debian_branch(debian_branch, dirs):
     os.chdir(dirs['top'])
 
 
+def print_dsc(dsc):
+    if dsc.native:
+        print "Debian Native Package"
+        print "Version:", dsc.upstream_version
+    else:
+        print "Upstream version:", dsc.upstream_version
+        print "Debian version:", dsc.debian_version
+    if dsc.epoch:
+        print "Epoch: %s" % dsc.epoch
+
+
 def main(argv):
     dirs = {'top': os.path.abspath(os.curdir)}
     ret = 0
@@ -164,6 +175,8 @@ def main(argv):
             raise GbpError
         else:
             src = parse_dsc(args[0])
+            if options.verbose:
+                print_dsc(src)
 
             try:
                 repo = GitRepository('.')