summaryrefslogtreecommitdiffstats
path: root/sanitycheck.pl
diff options
context:
space:
mode:
authorlpsolit%gmail.com <>2007-03-17 02:27:44 +0100
committerlpsolit%gmail.com <>2007-03-17 02:27:44 +0100
commitf8fd2befb9b33967beb35d8e86a57f0de9b326e5 (patch)
tree4867cea3c1539e822abab4c4ea66f001e6516513 /sanitycheck.pl
parent832b52161f35aaa7ddf03168b540c5867f33dfe8 (diff)
downloadbugzilla-f8fd2befb9b33967beb35d8e86a57f0de9b326e5.tar.gz
bugzilla-f8fd2befb9b33967beb35d8e86a57f0de9b326e5.tar.xz
Bug 45207: Automated sanity check that can send an e-mail if there are problems - Patch by Frédéric Buclin <LpSolit@gmail.com> r=mkanat a=LpSolit
Diffstat (limited to 'sanitycheck.pl')
-rw-r--r--sanitycheck.pl70
1 files changed, 70 insertions, 0 deletions
diff --git a/sanitycheck.pl b/sanitycheck.pl
new file mode 100644
index 000000000..5c383e67d
--- /dev/null
+++ b/sanitycheck.pl
@@ -0,0 +1,70 @@
+#!/usr/bin/perl -w
+# -*- Mode: perl; indent-tabs-mode: nil -*-
+#
+# The contents of this file are subject to the Mozilla Public
+# License Version 1.1 (the "License"); you may not use this file
+# except in compliance with the License. You may obtain a copy of
+# the License at http://www.mozilla.org/MPL/
+#
+# Software distributed under the License is distributed on an "AS
+# IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
+# implied. See the License for the specific language governing
+# rights and limitations under the License.
+#
+# The Original Code is the Bugzilla Bug Tracking System.
+#
+# The Initial Developer of the Original Code is Frédéric Buclin.
+# Portions created by Frédéric Buclin are Copyright (C) 2007
+# Frédéric Buclin. All Rights Reserved.
+#
+# Contributor(s): Frédéric Buclin <LpSolit@gmail.com>
+
+use strict;
+
+use lib qw(.);
+
+use Bugzilla;
+use Bugzilla::Constants;
+use Bugzilla::Error;
+use Bugzilla::User;
+use Bugzilla::Mailer;
+
+use Getopt::Long;
+
+my $verbose = 0; # Return all comments if true, else errors only.
+my $login = ''; # Login name of the user which is used to call sanitycheck.cgi.
+
+my $result = GetOptions('verbose' => \$verbose, 'login=s' => \$login);
+
+Bugzilla->usage_mode(USAGE_MODE_CMDLINE);
+
+# Be sure a login name if given.
+$login || ThrowUserError('invalid_username');
+
+my $user = new Bugzilla::User({ name => $login })
+ || ThrowUserError('invalid_username', { name => $login });
+
+my $cgi = Bugzilla->cgi;
+my $template = Bugzilla->template;
+
+# Authenticate using this user account.
+Bugzilla->set_user($user);
+
+# Pass this param to sanitycheck.cgi.
+$cgi->param('verbose', $verbose);
+
+require 'sanitycheck.cgi';
+
+# Now it's time to send an email to the user if there is something to notify.
+if ($cgi->param('output')) {
+ my $message;
+ my $vars = {};
+ $vars->{'addressee'} = $user->email;
+ $vars->{'output'} = $cgi->param('output');
+ $vars->{'error_found'} = $cgi->param('error_found') ? 1 : 0;
+
+ $template->process('email/sanitycheck.txt.tmpl', $vars, \$message)
+ || ThrowTemplateError($template->error());
+
+ MessageToMTA($message);
+}