From: Huang Hao Date: Wed, 17 Oct 2012 08:04:46 +0000 (+0800) Subject: Check return value of 'gbs export' X-Git-Tag: 0.2~9 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=a16450fcc776cd7dc72dd19ebb5eb25424f4b193;p=tools%2Fdepanneur.git Check return value of 'gbs export' * Fix #403. Exit with no-zero if any error occurs. * Show error summary at the end. There are three types of errors: exporting error, dependency error and rmpbuild error. Change-Id: I42128c327266f6b4f215ed708fd8caf18452d829 --- diff --git a/depanneur b/depanneur index e4188e1..4f0827c 100755 --- a/depanneur +++ b/depanneur @@ -118,6 +118,7 @@ my @original_specs = (); my @cleaned : shared = (); my %errors :shared; my %expansion_errors = (); +my @export_errors; my %tmp_expansion_errors = (); my $packages_built :shared = 0; my %workers = (); @@ -431,7 +432,10 @@ sub write_cache { my ($cache_key, $cache_val, $base, $spec) = @_; my $cache_fname = "$cache_path/$cache_key"; - return if gbs_export($base, $spec) != 0; + if (gbs_export($base, $spec) != 0) { + push(@export_errors, $cache_key); + return; + } my $pattern = "$localrepo/$dist/src/SRPMS/$cache_key.*.rpm"; my @binaries = glob $pattern; @@ -1240,22 +1244,32 @@ if ($packages_built) { createrepo ($arch, $dist); } -if (%errors || %expansion_errors) { - my $error_pkgs; - if (%errors) { - $error_pkgs = ""; - foreach my $pkg (keys %errors) { - $error_pkgs .= "$pkg: $errors{$pkg}\n"; - } - warning("the following packages failed to build due to rpmbuild issue:\n$error_pkgs"); +if (%errors || %expansion_errors || @export_errors) { + my $msg = "*** Error Summary ***\n"; + + if (@export_errors) { + $msg .= "=== the following packages failed to build because export " . + "source files to build environment failed ===\n"; + $msg .= join("\n", @export_errors) . "\n"; + $msg .= "\n"; } if (%expansion_errors) { - $error_pkgs = ""; + my $error_pkgs = ""; foreach my $pkg (keys %expansion_errors) { $error_pkgs .= "$pkg:\n " . join("\n ", @{$expansion_errors{$pkg}}) . "\n"; } - warning("the following packages failed to build due to missing build dependencies:\n$error_pkgs"); + $msg .= "=== the following packages failed to build due to missing " . + "build dependencies ===\n$error_pkgs\n"; + } + if (%errors) { + my $error_pkgs = ""; + foreach my $pkg (keys %errors) { + $error_pkgs .= "$pkg: $errors{$pkg}\n"; + } + $msg .= "=== the following packages failed to build due to rpmbuild " . + "issue ===\n$error_pkgs"; } + error($msg); } exit 0