diff options
-rwxr-xr-x | backdoor.cgi | 2 | ||||
-rwxr-xr-x | createattachment.cgi | 13 | ||||
-rwxr-xr-x | post_bug.cgi | 10 | ||||
-rwxr-xr-x | process_bug.cgi | 19 | ||||
-rwxr-xr-x | processmail | 89 |
5 files changed, 71 insertions, 62 deletions
diff --git a/backdoor.cgi b/backdoor.cgi index 0c4a013be..dd96b6316 100755 --- a/backdoor.cgi +++ b/backdoor.cgi @@ -160,4 +160,4 @@ foreach my $cc (split(/,/, $::FORM{'cc'})) { } print "Created bugzilla bug $zillaid\n"; -system("./processmail $zillaid < /dev/null > /dev/null 2> /dev/null &"); +system("./processmail $zillaid"); diff --git a/createattachment.cgi b/createattachment.cgi index 80dff3520..225efc02f 100755 --- a/createattachment.cgi +++ b/createattachment.cgi @@ -97,16 +97,11 @@ What kind of file is this? my $attachid = FetchOneColumn(); AppendComment($id, $::COOKIE{"Bugzilla_login"}, "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> -}; diff --git a/post_bug.cgi b/post_bug.cgi index 6ad8aff82..e98767b1b 100755 --- a/post_bug.cgi +++ b/post_bug.cgi @@ -136,12 +136,12 @@ foreach my $person (keys %ccids) { SendSQL("insert into cc (bug_id, who) values ($id, $person)"); } -print "<H2>Changes Submitted</H2>\n"; -print "<A HREF=\"show_bug.cgi?id=$id\">Show BUG# $id</A>\n"; -print "<BR><A HREF=\"createattachment.cgi?id=$id\">Attach a file to this bug</a>\n"; -print "<BR><A HREF=\"query.cgi\">Back To Query Page</A>\n"; +print "<TABLE BORDER=1><TD><H2>Bug $id posted</H2>\n"; +system("./processmail $id $::COOKIE{'Bugzilla_login'}"); +print "<TD><A HREF=\"show_bug.cgi?id=$id\">Back To BUG# $id</A></TABLE>\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; diff --git a/process_bug.cgi b/process_bug.cgi index fc425a199..c671a90c2 100755 --- a/process_bug.cgi +++ b/process_bug.cgi @@ -226,13 +226,17 @@ SWITCH: for ($::FORM{'knob'}) { exit; } 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"; exit; } 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'} ***"; - 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; }; # default @@ -327,20 +331,19 @@ foreach my $id (@idlist) { } } - print "<TABLE BORDER=1><TD><H1>Changes Submitted</H1>\n"; - print "<TD><A HREF=\"show_bug.cgi?id=$id\">Back To BUG# $id</A></TABLE>\n"; - + print "<TABLE BORDER=1><TD><H2>Changes to bug $id submitted</H2>\n"; SendSQL("unlock tables"); - - system("./processmail $id < /dev/null > /dev/null 2> /dev/null &"); + system("./processmail $id $::FORM{'who'}"); + print "<TD><A HREF=\"show_bug.cgi?id=$id\">Back To BUG# $id</A></TABLE>\n"; } if (defined $::next_bug) { + print("<P>The next bug in your list is:\n"); $::FORM{'id'} = $::next_bug; print "<HR>\n"; navigation_header(); do "bug_form.pl"; } else { - print "<BR><A HREF=\"query.cgi\">Back To Query Page</A>\n"; + navigation_header(); } diff --git a/processmail b/processmail index 3da6448e1..48eba9193 100755 --- a/processmail +++ b/processmail @@ -17,8 +17,8 @@ # Corporation. Portions created by Netscape are Copyright (C) 1998 # 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" . @@ -32,6 +32,8 @@ $| = 1; umask(0); $::lockcount = 0; +my $regenerate = 0; +my $nametoexclude = ""; sub Lock { if ($::lockcount <= 0) { @@ -182,7 +184,7 @@ sub fixaddresses { my @result; my %seen; 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; $seen{$i} = 1; } @@ -200,40 +202,8 @@ sub Log { Unlock(); } - -ConnectToDatabase(); - - -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) { +sub ProcessOneBug { + my $i = $_[0]; my $old = "shadow/$i"; my $new = "shadow/$i.tmp.$$"; my $diffs = "shadow/$i.diffs.$$"; @@ -257,7 +227,7 @@ foreach my $i (@ARGV) { my $tolist = fixaddresses([$::bug{'assigned_to'}, $::bug{'reporter'}, $::bug{'qa_contact'}]); my $cclist = fixaddresses($::bug{'cclist'}); - my $logstr = "Bug $i changed"; + my $logstr = "Bug $i $verb"; if ($tolist ne "" || $cclist ne "") { my %substs; @@ -275,11 +245,13 @@ foreach my $i (@ARGV) { my $msg = PerformSubsts(Param("changedmail"), \%substs); if (!$regenerate) { + # Note: fixaddresses may result in a Cc: only. This seems harmless. open(SENDMAIL, "|/usr/lib/sendmail -t") || die "Can't open sendmail"; print SENDMAIL $msg; 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); @@ -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; |