]> git.donarmstrong.com Git - debbugs.git/blobdiff - scripts/process.in
use full path to spamscan-sa
[debbugs.git] / scripts / process.in
index 7c3a6f6e7832ef7cc95111c4485b86789ac9f884..deaadf2a56d0166ec363c9ed80711b04454e7a93 100755 (executable)
@@ -75,6 +75,8 @@ END
 # header and decoded body respectively
 my (@headerlines, @bodylines);
 
+# whether maintainer addresses have been checked
+our $maintainerschecked = 0;
 #maintainer address for this message
 our @maintaddrs;
 # other src addresses
@@ -262,8 +264,9 @@ if ($codeletter eq 'D' || $codeletter eq 'F')
 {
     if ($replyto =~ m/$gBounceFroms/o ||
         $header{'from'} =~ m/$gBounceFroms/o)
-    { 
-        &quit("bounce detected !  Mwaap! Mwaap!"); 
+    {
+        print STDERR "bounce detected !  Mwaap! Mwaap!";
+        exit 1;
     }
     my $markedby= $header{'from'} eq $replyto ? $replyto :
                "$header{'from'} (reply to $replyto)";
@@ -289,7 +292,7 @@ if ($codeletter eq 'D' || $codeletter eq 'F')
            $generalcc=''; 
         }
     } else { # Done
-        if (length($data->{done}) and
+        if (defined $data->{done} and length($data->{done}) and
                 not defined $pheader{'source-version'} and
                 not defined $pheader{'version'}) {
             &appendlog;
@@ -437,7 +440,7 @@ if ($codeletter eq 'D' || $codeletter eq 'F')
              (defined($source_package) and length($source_package))?("X-$gProject-PR-Source" => $source_package):(),
               "Reply-To"                => "$ref\@$gEmailDomain",
               "Content-Type"            => 'text/plain; charset="utf-8"',
-             ],message_body_template('mail/process_mark_as_done',
+             ],message_body_template('mail/process_your_bug_done',
                                     {data      => $data,
                                      markedby  => $markedby,
                                      messageid => $header{'message-id'},
@@ -482,7 +485,10 @@ if ($ref<0) {
         $data->{package} = $pheader{source};
     } elsif (defined $pheader{package}) {
         $data->{package} = $pheader{package};
-    } else {
+    } elsif (defined $config{default_package}) {
+       $data->{package} = $config{default_package},
+    }
+    else {
        &htmllog("Warning","sent",$replyto,"Message not forwarded.");
        my $body = message_body_template('mail/process_no_package',
                                        );
@@ -508,6 +514,22 @@ if ($ref<0) {
        &finish;
     }
 
+    if (defined $config{default_package}) {
+        &checkmaintainers;
+        # if there are no maintainers for this package, assign it to the default package
+        if (not @maintaddrs) {
+             $data->{package} = $config{default_package};
+             $brokenness.= fill_template('mail/process_default_package_selected',
+                                         {old_package => $pheader{source} || $pheader{package} || 'No package',
+                                          new_package => $data->{package},
+                                         }
+                                        );
+             # force the maintainers to be rechecked
+             $maintainerschecked = 0;
+             &checkmaintainers;
+        }
+    }
+
     $data->{keywords}= '';
     if (defined($pheader{'keywords'})) {
         $data->{keywords}= $pheader{'keywords'};
@@ -529,9 +551,9 @@ if ($ref<0) {
        $data->{severity} =~ s/^\s*(.+)\s*$/$1/;
 
        if (!grep($_ eq $data->{severity}, @gSeverityList, "$gDefaultSeverity")) {
-            $brokenness.= fill_in_template('mail/invalid_severity',
-                                          {severity=>$data->{severity}}
-                                         );
+            $brokenness.= fill_template('mail/invalid_severity',
+                                       {severity=>$data->{severity}}
+                                      );
             $data->{severity}= '';
         }
     }
@@ -577,9 +599,9 @@ if ($ref<0) {
              write_usertags(\%user_tags,$user);
         }
         else {
-             $brokenness .= fill_in_template('mail/invalid_user',
-                                             {user => $user}
-                                            );
+             $brokenness .= fill_template('mail/invalid_user',
+                                          {user => $user}
+                                         );
         }
     }
     &overwrite("db-h/$hash/$ref.report",
@@ -985,7 +1007,6 @@ sub fill_template{
 }
 
 
-my $maintainerschecked = 0;
 sub checkmaintainers {
     return if $maintainerschecked++;
     return if !length($data->{package});