Check the existance of RPMs and log before copying
authorZhang Qiang <qiang.z.zhang@intel.com>
Fri, 14 Sep 2012 13:17:49 +0000 (21:17 +0800)
committerZhang Qiang <qiang.z.zhang@intel.com>
Fri, 14 Sep 2012 13:17:49 +0000 (21:17 +0800)
remove 'die ...' in threads, or build threads will exit abnormal,
and make whole build status inconsistent.

Change-Id: I4063551cc40787d37093208100322ffe2637c09e

depanneur

index 95e6f46e0083d5fb1da54a0c7c8f8fb1bee1dd47..2b359fb712b8e811f9a4bda2eec11e32fdb539fc 100755 (executable)
--- a/depanneur
+++ b/depanneur
@@ -804,11 +804,17 @@ sub build_package {
     $cmd = join(" ", @args);
     debug($cmd);
     if (system ($cmd) == 0 ) {
-        system ("cp $scratch/home/abuild/rpmbuild/SRPMS/*.rpm $localrepo/$dist/src/SRPMS") == 0 or die "mv";
-        system ("cp $scratch/home/abuild/rpmbuild/RPMS/*/*.rpm $localrepo/$dist/$arch/RPMS") == 0 or die "mv";
+        if (glob "$scratch/home/abuild/rpmbuild/SRPMS/*.rpm") {
+            system ("cp $scratch/home/abuild/rpmbuild/SRPMS/*.rpm $localrepo/$dist/src/SRPMS");
+        }
+        if (glob "$scratch/home/abuild/rpmbuild/RPMS/*/*.rpm") {
+            system ("cp $scratch/home/abuild/rpmbuild/RPMS/*/*.rpm $localrepo/$dist/$arch/RPMS");
+        }
         mkdir_p "$localrepo/$dist/$arch/logs/success/$name-$version-$release";
-        system ("cp $scratch/.build.log $localrepo/$dist/$arch/logs/success/$name-$version-$release/log") == 0 or die "mv";
-        system ("sudo rm -f $scratch/.build.log ") == 0 or die "rm";
+        if (-e "$scratch/.build.log") {
+            system ("cp $scratch/.build.log $localrepo/$dist/$arch/logs/success/$name-$version-$release/log");
+            system ("sudo rm -f $scratch/.build.log ");
+        }
         # Detach and terminate
         {
             lock($DETACHING);
@@ -827,8 +833,8 @@ sub build_package {
     } else {
         mkdir_p "$localrepo/$dist/$arch/logs/fail/$name-$version-$release";
         if ( -f "$scratch/.build.log" ) {
-            system ("cp $scratch/.build.log $localrepo/$dist/$arch/logs/fail/$name-$version-$release/log") == 0 or die "cp";
-            system ("sudo rm -f $scratch/.build.log") == 0 or die "rm";
+            system ("cp $scratch/.build.log $localrepo/$dist/$arch/logs/fail/$name-$version-$release/log");
+            system ("sudo rm -f $scratch/.build.log");
             warning("Build failed, Leaving the logs in $localrepo/$dist/$arch/logs/fail/$name-$version-$release/log");
         }
         # Detach and terminate