Merge.
[fedora-mingw.git] / smock / smock.pl
index 1ba7f7e..76a1a54 100755 (executable)
@@ -26,6 +26,7 @@ use File::Temp qw(tempfile);
 
 my @arches = ();
 my @distros = ();
+my $suffix = "";
 my $localrepo = $ENV{HOME} . "/public_html/smock/yum";
 my $dryrun = 0;
 my $keepgoing = 0;
@@ -36,6 +37,7 @@ my $man = 0;
 GetOptions (
     "arch=s" => \@arches,
     "distro=s" => \@distros,
+    "suffix=s" => \$suffix,
     "localrepo=s" => \$localrepo,
     "dryrun" => \$dryrun,
     "keepgoing" => \$keepgoing,
@@ -114,6 +116,11 @@ Don't run any commands, just print the packages in the correct
 format for chain building.  See:
 L<http://fedoraproject.org/wiki/Koji/UsingKoji#Chained_builds>
 
+=item B<--suffix>
+
+Append a suffix to the mock configuration file in order to use
+a custom one.
+
 =back
 
 =cut
@@ -353,19 +360,22 @@ foreach my $arch (@arches) {
                my $scratchdir = "$localrepo/scratch/$name-$distro-$arch";
                mkdir $scratchdir;
 
-               if (system ("mock -r $distro-$arch --resultdir $scratchdir $srpm_filename") == 0) {
+               if (system ("mock -r $distro-$arch$suffix --resultdir $scratchdir $srpm_filename") == 0) {
                    # Build was a success so move the final RPMs into the
                    # mock repo for next time.
                    system ("mv $scratchdir/*.src.rpm $localrepo/$distro/src/SRPMS") == 0 or die "mv";
                    system ("mv $scratchdir/*.rpm $localrepo/$distro/$arch/RPMS") == 0 or die "mv";
                    my_mkdir "$localrepo/$distro/$arch/logs/$name-$version-$release";
                    system ("mv $scratchdir/*.log $localrepo/$distro/$arch/logs/$name-$version-$release/") == 0 or die "mv";
+                   system "rm -rf $scratchdir";
+
                    createrepo ($arch, $distro);
+
                }
                else {
-                   push @errors, "$name-$distro-$arch";
+                   push @errors, "$name-$distro-$arch$suffix";
                    print STDERR "Build failed, return code $?\nLeaving the logs in $scratchdir\n";
-                   die unless $keepgoing;
+                   exit 1 unless $keepgoing;
                }
            }
            else