mkanat%bugzilla.org aa78fed93a Remove CVS "$Id" markers in files. The CVS mirror of bzr was showing
the docs' about.xml and installation.xml being modified on every commit
because of these markers, and the rest of them are simply unnecessary.


git-svn-id: svn://10.0.0.236/branches/BUGZILLA-3_6-BRANCH@259907 18797224-902f-48f8-a5cc-f745e15eee43
2010-03-08 02:49:56 +00:00

110 lines
3.0 KiB
Perl
Executable File

#!/usr/bin/perl -w
#
# sendbugmail.pl
#
# Nick Barnes, Ravenbrook Limited, 2004-04-01.
#
# Bugzilla email script for Bugzilla 2.17.4 and later. Invoke this to send
# bugmail for a bug which has been changed directly in the database.
# This uses Bugzilla's own BugMail facility, and will email the
# users associated with the bug. Replaces the old "processmail"
# script.
#
# Usage: perl -T contrib/sendbugmail.pl bug_id user_email
use lib qw(. lib);
use Bugzilla;
use Bugzilla::Util;
use Bugzilla::BugMail;
use Bugzilla::User;
my $dbh = Bugzilla->dbh;
sub usage {
print STDERR "Usage: $0 bug_id user_email\n";
exit;
}
if (($#ARGV < 1) || ($#ARGV > 2)) {
usage();
}
# Get the arguments.
my $bugnum = $ARGV[0];
my $changer = $ARGV[1];
# Validate the bug number.
if (!($bugnum =~ /^(\d+)$/)) {
print STDERR "Bug number \"$bugnum\" not numeric.\n";
usage();
}
detaint_natural($bugnum);
my ($id) = $dbh->selectrow_array("SELECT bug_id FROM bugs WHERE bug_id = ?",
undef, $bugnum);
if (!$id) {
print STDERR "Bug number $bugnum does not exist.\n";
usage();
}
# Validate the changer address.
my $match = Bugzilla->params->{'emailregexp'};
if ($changer !~ /$match/) {
print STDERR "Changer \"$changer\" doesn't match email regular expression.\n";
usage();
}
if(!login_to_id($changer)) {
print STDERR "\"$changer\" is not a login ID.\n";
usage();
}
# Send the email.
my $outputref = Bugzilla::BugMail::Send($bugnum, {'changer' => $changer });
# Report the results.
my $sent = scalar(@{$outputref->{sent}});
my $excluded = scalar(@{$outputref->{excluded}});
if ($sent) {
print "email sent to $sent recipients:\n";
} else {
print "No email sent.\n";
}
foreach my $sent (@{$outputref->{sent}}) {
print " $sent\n";
}
if ($excluded) {
print "$excluded recipients excluded:\n";
} else {
print "No recipients excluded.\n";
}
foreach my $excluded (@{$outputref->{excluded}}) {
print " $excluded\n";
}
# This document is copyright (C) 2004 Perforce Software, Inc. All rights
# reserved.
#
# Redistribution and use of this document in any form, with or without
# modification, is permitted provided that redistributions of this
# document retain the above copyright notice, this condition and the
# following disclaimer.
#
# THIS DOCUMENT IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS
# IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
# TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A
# PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
# HOLDERS AND CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED
# TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
# PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
# LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
# NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
# DOCUMENT, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.