buildpackage-rpm: return 2 for patch-export or tarball generation errors
authorMarkus Lehtonen <markus.lehtonen@linux.intel.com>
Fri, 21 Sep 2012 05:38:57 +0000 (08:38 +0300)
committerMarkus Lehtonen <markus.lehtonen@linux.intel.com>
Tue, 3 Mar 2015 08:07:46 +0000 (10:07 +0200)
Signed-off-by: Markus Lehtonen <markus.lehtonen@linux.intel.com>
gbp/scripts/buildpackage_rpm.py

index 6d29efc8cbd34e65fdbfaf6f75b748873e9e2f0d..2b8f97c6e4fc04b8db995cd574c1f36bf4d92c20 100755 (executable)
@@ -43,6 +43,10 @@ from gbp.scripts.common.buildpackage import (index_name, wc_names,
 from gbp.scripts.pq_rpm import parse_spec, update_patch_series
 
 
+class GbpAutoGenerateError(GbpError):
+    pass
+
+
 def makedir(path):
     """Create directory"""
     try:
@@ -215,25 +219,31 @@ def git_archive_build_orig(repo, spec, output_dir, options):
     @return: the tree we built the tarball from
     @rtype: C{str}
     """
-    upstream_tree = get_upstream_tree(repo, spec, options)
-    gbp.log.info("%s does not exist, creating from '%s'" % \
-                 (spec.orig_src['filename'], upstream_tree))
-    if spec.orig_src['compression']:
-        gbp.log.debug("Building upstream source archive with compression "\
-                      "'%s -%s'" % (spec.orig_src['compression'],
-                                    options.comp_level))
-    if not git_archive(repo, spec, output_dir, upstream_tree,
-                       options.orig_prefix, options.comp_level,
-                       options.with_submodules):
-        raise GbpError("Cannot create upstream tarball at '%s'" % \
-                        output_dir)
+    try:
+        upstream_tree = get_upstream_tree(repo, spec, options)
+        gbp.log.info("%s does not exist, creating from '%s'" % \
+                     (spec.orig_src['filename'], upstream_tree))
+        if spec.orig_src['compression']:
+            gbp.log.debug("Building upstream source archive with compression "\
+                          "'%s -%s'" % (spec.orig_src['compression'],
+                                        options.comp_level))
+        if not git_archive(repo, spec, output_dir, upstream_tree,
+                           options.orig_prefix, options.comp_level,
+                           options.with_submodules):
+            raise GbpError("Cannot create upstream tarball at '%s'" % \
+                            output_dir)
+    except (GitRepositoryError, GbpError) as err:
+        raise GbpAutoGenerateError(str(err))
     return upstream_tree
 
 
 def export_patches(repo, spec, export_treeish, options):
     """Generate patches and update spec file"""
-    upstream_tree = get_upstream_tree(repo, spec, options)
-    update_patch_series(repo, spec, upstream_tree, export_treeish, options)
+    try:
+        upstream_tree = get_upstream_tree(repo, spec, options)
+        update_patch_series(repo, spec, upstream_tree, export_treeish, options)
+    except (GitRepositoryError, GbpError) as err:
+        raise GbpAutoGenerateError(str(err))
 
 
 def is_native(repo, options):
@@ -688,6 +698,10 @@ def main(argv):
     except GitRepositoryError as err:
         gbp.log.err("Git command failed: %s" % err)
         retval = 1
+    except GbpAutoGenerateError as err:
+        if len(err.__str__()):
+            gbp.log.err(err)
+        retval = 2
     except GbpError, err:
         if len(err.__str__()):
             gbp.log.err(err)