"nospam" feature. BugZilla will no longer email the person submitting

the change (after all, they are right there viewing things interactively). To make this clear to everyone, print out the exact email list as each bug is processed.
parent 41d9abb7
...@@ -160,4 +160,4 @@ foreach my $cc (split(/,/, $::FORM{'cc'})) { ...@@ -160,4 +160,4 @@ foreach my $cc (split(/,/, $::FORM{'cc'})) {
} }
print "Created bugzilla bug $zillaid\n"; print "Created bugzilla bug $zillaid\n";
system("./processmail $zillaid < /dev/null > /dev/null 2> /dev/null &"); system("./processmail $zillaid");
...@@ -97,16 +97,11 @@ What kind of file is this? ...@@ -97,16 +97,11 @@ What kind of file is this?
my $attachid = FetchOneColumn(); my $attachid = FetchOneColumn();
AppendComment($id, $::COOKIE{"Bugzilla_login"}, AppendComment($id, $::COOKIE{"Bugzilla_login"},
"Created an attachment (id=$attachid)\n$desc\n"); "Created an attachment (id=$attachid)\n$desc\n");
print "Your attachment has been created.";
system("./processmail $id < /dev/null > /dev/null 2> /dev/null &");
print "<TABLE BORDER=1><TD><H2>Attachment to bug $id created</H2>\n";
system("./processmail $id $::COOKIE{'Bugzilla_login'}");
print "<TD><A HREF=\"show_bug.cgi?id=$id\">Go Back to BUG# $id</A></TABLE>\n";
} }
navigation_header();
print qq{
<P>
<a href="show_bug.cgi?id=$id">Go back to bug $id</a><br>
<a href="query.cgi">Go back to the query page</a><br>
};
...@@ -136,12 +136,12 @@ foreach my $person (keys %ccids) { ...@@ -136,12 +136,12 @@ foreach my $person (keys %ccids) {
SendSQL("insert into cc (bug_id, who) values ($id, $person)"); SendSQL("insert into cc (bug_id, who) values ($id, $person)");
} }
print "<H2>Changes Submitted</H2>\n"; print "<TABLE BORDER=1><TD><H2>Bug $id posted</H2>\n";
print "<A HREF=\"show_bug.cgi?id=$id\">Show BUG# $id</A>\n"; system("./processmail $id $::COOKIE{'Bugzilla_login'}");
print "<BR><A HREF=\"createattachment.cgi?id=$id\">Attach a file to this bug</a>\n"; print "<TD><A HREF=\"show_bug.cgi?id=$id\">Back To BUG# $id</A></TABLE>\n";
print "<BR><A HREF=\"query.cgi\">Back To Query Page</A>\n";
print "<BR><A HREF=\"createattachment.cgi?id=$id\">Attach a file to this bug</a>\n";
system("./processmail $id < /dev/null > /dev/null 2> /dev/null &"); navigation_header();
exit; exit;
...@@ -226,13 +226,17 @@ SWITCH: for ($::FORM{'knob'}) { ...@@ -226,13 +226,17 @@ SWITCH: for ($::FORM{'knob'}) {
exit; exit;
} }
if ($::FORM{'dup_id'} == $::FORM{'id'}) { if ($::FORM{'dup_id'} == $::FORM{'id'}) {
print "Nice try. But it doesn't really make sense to mark a\n"; print "Nice try, $::FORM{'who'}. But it doesn't really make sense to mark a\n";
print "bug as a duplicate of itself, does it?\n"; print "bug as a duplicate of itself, does it?\n";
exit; exit;
} }
AppendComment($::FORM{'dup_id'}, $::FORM{'who'}, "*** Bug $::FORM{'id'} has been marked as a duplicate of this bug. ***"); AppendComment($::FORM{'dup_id'}, $::FORM{'who'}, "*** Bug $::FORM{'id'} has been marked as a duplicate of this bug. ***");
$::FORM{'comment'} .= "\n\n*** This bug has been marked as a duplicate of $::FORM{'dup_id'} ***"; $::FORM{'comment'} .= "\n\n*** This bug has been marked as a duplicate of $::FORM{'dup_id'} ***";
system("./processmail $::FORM{'dup_id'} < /dev/null > /dev/null 2> /dev/null &");
print "<TABLE BORDER=1><TD><H2>Notation added to bug $::FORM{'dup_id'}</H2>\n";
system("./processmail $::FORM{'dup_id'} $::FORM{'who'}");
print "<TD><A HREF=\"show_bug.cgi?id=$::FORM{'dup_id'}\">Go To BUG# $::FORM{'dup_id'}</A></TABLE>\n";
last SWITCH; last SWITCH;
}; };
# default # default
...@@ -327,20 +331,19 @@ foreach my $id (@idlist) { ...@@ -327,20 +331,19 @@ foreach my $id (@idlist) {
} }
} }
print "<TABLE BORDER=1><TD><H1>Changes Submitted</H1>\n"; print "<TABLE BORDER=1><TD><H2>Changes to bug $id submitted</H2>\n";
print "<TD><A HREF=\"show_bug.cgi?id=$id\">Back To BUG# $id</A></TABLE>\n";
SendSQL("unlock tables"); SendSQL("unlock tables");
system("./processmail $id $::FORM{'who'}");
system("./processmail $id < /dev/null > /dev/null 2> /dev/null &"); print "<TD><A HREF=\"show_bug.cgi?id=$id\">Back To BUG# $id</A></TABLE>\n";
} }
if (defined $::next_bug) { if (defined $::next_bug) {
print("<P>The next bug in your list is:\n");
$::FORM{'id'} = $::next_bug; $::FORM{'id'} = $::next_bug;
print "<HR>\n"; print "<HR>\n";
navigation_header(); navigation_header();
do "bug_form.pl"; do "bug_form.pl";
} else { } else {
print "<BR><A HREF=\"query.cgi\">Back To Query Page</A>\n"; navigation_header();
} }
...@@ -17,8 +17,8 @@ ...@@ -17,8 +17,8 @@
# Corporation. Portions created by Netscape are Copyright (C) 1998 # Corporation. Portions created by Netscape are Copyright (C) 1998
# Netscape Communications Corporation. All Rights Reserved. # Netscape Communications Corporation. All Rights Reserved.
# #
# Contributor(s): Terry Weissman <terry@mozilla.org> # Contributor(s): Terry Weissman <terry@mozilla.org>,
# Bryce Nesbitt <bryce-mozilla@nextbus.com>
# To recreate the shadow database, run "processmail regenerate" . # To recreate the shadow database, run "processmail regenerate" .
...@@ -32,6 +32,8 @@ $| = 1; ...@@ -32,6 +32,8 @@ $| = 1;
umask(0); umask(0);
$::lockcount = 0; $::lockcount = 0;
my $regenerate = 0;
my $nametoexclude = "";
sub Lock { sub Lock {
if ($::lockcount <= 0) { if ($::lockcount <= 0) {
...@@ -182,7 +184,7 @@ sub fixaddresses { ...@@ -182,7 +184,7 @@ sub fixaddresses {
my @result; my @result;
my %seen; my %seen;
foreach my $i (@$list) { foreach my $i (@$list) {
if ($i ne "" && !defined $::nomail{$i} && !defined $seen{$i}) { if ($i ne $nametoexclude && $i ne "" && !defined $::nomail{$i} && !defined $seen{$i}) {
push @result, $i; push @result, $i;
$seen{$i} = 1; $seen{$i} = 1;
} }
...@@ -200,40 +202,8 @@ sub Log { ...@@ -200,40 +202,8 @@ sub Log {
Unlock(); Unlock();
} }
sub ProcessOneBug {
ConnectToDatabase(); my $i = $_[0];
Lock();
# foreach i [split [read_file -nonewline "okmail"] "\n"] {
# set okmail($i) 1
# }
if (open(FID, "<data/nomail")) {
while (<FID>) {
$::nomail{trim($_)} = 1;
}
close FID;
}
my $regenerate = 0;
if ($ARGV[0] eq "regenerate") {
$regenerate = 1;
shift @ARGV;
SendSQL("select bug_id from bugs order by bug_id");
my @row;
while (@row = FetchSQLData()) {
push @ARGV, $row[0];
}
print "$#ARGV bugs to be regenerated.\n";
}
foreach my $i (@ARGV) {
my $old = "shadow/$i"; my $old = "shadow/$i";
my $new = "shadow/$i.tmp.$$"; my $new = "shadow/$i.tmp.$$";
my $diffs = "shadow/$i.diffs.$$"; my $diffs = "shadow/$i.diffs.$$";
...@@ -257,7 +227,7 @@ foreach my $i (@ARGV) { ...@@ -257,7 +227,7 @@ foreach my $i (@ARGV) {
my $tolist = fixaddresses([$::bug{'assigned_to'}, $::bug{'reporter'}, my $tolist = fixaddresses([$::bug{'assigned_to'}, $::bug{'reporter'},
$::bug{'qa_contact'}]); $::bug{'qa_contact'}]);
my $cclist = fixaddresses($::bug{'cclist'}); my $cclist = fixaddresses($::bug{'cclist'});
my $logstr = "Bug $i changed"; my $logstr = "Bug $i $verb";
if ($tolist ne "" || $cclist ne "") { if ($tolist ne "" || $cclist ne "") {
my %substs; my %substs;
...@@ -275,11 +245,13 @@ foreach my $i (@ARGV) { ...@@ -275,11 +245,13 @@ foreach my $i (@ARGV) {
my $msg = PerformSubsts(Param("changedmail"), \%substs); my $msg = PerformSubsts(Param("changedmail"), \%substs);
if (!$regenerate) { if (!$regenerate) {
# Note: fixaddresses may result in a Cc: only. This seems harmless.
open(SENDMAIL, "|/usr/lib/sendmail -t") || open(SENDMAIL, "|/usr/lib/sendmail -t") ||
die "Can't open sendmail"; die "Can't open sendmail";
print SENDMAIL $msg; print SENDMAIL $msg;
close SENDMAIL; close SENDMAIL;
$logstr = "$logstr; mail sent to $tolist $cclist"; $logstr = "$logstr; mail sent to $tolist, $cclist";
print "<B>Email sent to:</B> $tolist $cclist <B>Excluding:</B> $nametoexclude\n";
} }
} }
unlink($diffs); unlink($diffs);
...@@ -292,4 +264,43 @@ foreach my $i (@ARGV) { ...@@ -292,4 +264,43 @@ foreach my $i (@ARGV) {
} }
} }
# Code starts here
ConnectToDatabase();
Lock();
if (open(FID, "<data/nomail")) {
while (<FID>) {
$::nomail{trim($_)} = 1;
}
close FID;
}
if (($#ARGV < 0) || ($#ARGV > 1)) {
print "Usage error: processmail {bugid} {nametoexclude}\nOr: processmail regenerate\n";
exit;
}
# To recreate the shadow database, run "processmail regenerate" .
if ($ARGV[0] eq "regenerate") {
$regenerate = 1;
shift @ARGV;
SendSQL("select bug_id from bugs order by bug_id");
my @regenerate_list;
while (my @row = FetchSQLData()) {
push @regenerate_list, $row[0];
}
foreach my $i (@regenerate_list) {
ProcessOneBug($i);
}
print("\n");
exit;
}
if ($#ARGV == 1) {
$nametoexclude = $ARGV[1];
}
ProcessOneBug($ARGV[0]);
exit; exit;
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment