haikuwebkit/Websites/bugs.webkit.org/sanitycheck.pl

104 lines
2.6 KiB
Perl
Raw Permalink Normal View History

#!/usr/bin/perl
# This Source Code Form is subject to the terms of the Mozilla Public
# License, v. 2.0. If a copy of the MPL was not distributed with this
# file, You can obtain one at http://mozilla.org/MPL/2.0/.
#
# This Source Code Form is "Incompatible With Secondary Licenses", as
# defined by the Mozilla Public License, v. 2.0.
use 5.10.1;
use strict;
use warnings;
use lib qw(. lib);
use Bugzilla;
use Bugzilla::Constants;
use Bugzilla::Error;
use Bugzilla::User;
use Bugzilla::Mailer;
use Getopt::Long;
use Pod::Usage;
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 $help = 0; # Has user asked for help on this script?
my $result = GetOptions('verbose' => \$verbose,
'login=s' => \$login,
'help|h|?' => \$help);
pod2usage({-verbose => 1, -exitval => 1}) if $help;
# 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);
}
__END__
=head1 NAME
sanitycheck.pl - Perl script to perform a sanity check at the command line
=head1 SYNOPSIS
./sanitycheck.pl [--help]
./sanitycheck.pl [--verbose] --login <user@domain.com>
=head1 OPTIONS
=over
=item B<--help>
Displays this help text
=item B<--verbose>
Causes this script to be more verbose in its output. Without this option,
the script will return only errors. With the option, the script will append
all output to the email.
=item B<--login>
This should be passed the email address of a user that is capable of
running the Sanity Check process, a user with the editcomponents priv. This
user will receive an email with the results of the script run.
=back
=head1 DESCRIPTION
This script provides a way of running a 'Sanity Check' on the database
via either a CLI or cron. It is equivalent to calling sanitycheck.cgi
Upgrade bugs.webkit.org to Bugzilla 4.2 <http://webkit.org/b/55882> Upgrade to Bugzilla 4.2.1. Conflicts: .htaccess Bugzilla.pm Bugzilla/Auth.pm Bugzilla/Auth/Login/CGI.pm Bugzilla/Auth/Persist/Cookie.pm Bugzilla/Bug.pm Bugzilla/BugMail.pm Bugzilla/CGI.pm Bugzilla/Config/Attachment.pm Bugzilla/Config/Common.pm Bugzilla/Config/General.pm Bugzilla/Constants.pm Bugzilla/DB/Mysql.pm Bugzilla/DB/Oracle.pm Bugzilla/DB/Schema.pm Bugzilla/DB/Schema/Oracle.pm Bugzilla/Error.pm Bugzilla/Flag.pm Bugzilla/FlagType.pm Bugzilla/Hook.pm Bugzilla/Install/DB.pm Bugzilla/Install/Filesystem.pm Bugzilla/Install/Localconfig.pm Bugzilla/Install/Requirements.pm Bugzilla/Install/Util.pm Bugzilla/Mailer.pm Bugzilla/Product.pm Bugzilla/Search.pm Bugzilla/Search/Quicksearch.pm Bugzilla/Search/Saved.pm Bugzilla/Series.pm Bugzilla/Template.pm Bugzilla/Template/Plugin/Hook.pm Bugzilla/Token.pm Bugzilla/User.pm Bugzilla/Util.pm Bugzilla/WebService.pm Bugzilla/WebService/Bug.pm Bugzilla/WebService/Bugzilla.pm Bugzilla/WebService/Constants.pm Bugzilla/WebService/Product.pm Bugzilla/WebService/User.pm attachment.cgi buglist.cgi checksetup.pl colchange.cgi collectstats.pl contrib/bugzilla_ldapsync.rb contrib/bzdbcopy.pl contrib/gnats2bz.pl contrib/recode.pl contrib/sendbugmail.pl contrib/yp_nomail.sh docs/en/xml/Bugzilla-Guide.xml docs/en/xml/about.xml docs/en/xml/installation.xml docs/en/xml/security.xml docs/en/xml/troubleshooting.xml editflagtypes.cgi editparams.cgi editproducts.cgi editvalues.cgi editwhines.cgi email_in.pl enter_bug.cgi extensions/BmpConvert/Config.pm extensions/OldBugMove/template/en/default/admin/params/oldbugmove.html.tmpl extensions/Voting/template/en/default/hook/bug/process/header-title.html.tmpl extensions/Voting/template/en/default/hook/search/search-report-select-rep_fields.html.tmpl extensions/example/code/webservice-error_codes.pl extensions/example/version.pl images/favicon.ico importxml.pl index.cgi install-module.pl js/field.js js/util.js long_list.cgi mod_perl.pl post_bug.cgi process_bug.cgi quips.cgi sanitycheck.cgi show_bug.cgi showattachment.cgi sidebar.cgi skins/contrib/Dusk/global.css skins/contrib/Dusk/index.css skins/standard/global.css skins/standard/show_bug.css t/008filter.t template/en/custom/attachment/review.html.tmpl template/en/default/account/prefs/saved-searches.html.tmpl template/en/default/admin/classifications/delete.html.tmpl template/en/default/admin/classifications/edit-common.html.tmpl template/en/default/admin/classifications/footer.html.tmpl template/en/default/admin/components/create.html.tmpl template/en/default/admin/components/edit.html.tmpl template/en/default/admin/params/attachment.html.tmpl template/en/default/admin/sanitycheck/messages.html.tmpl template/en/default/admin/users/confirm-delete.html.tmpl template/en/default/admin/workflow/edit.html.tmpl template/en/default/attachment/created.html.tmpl template/en/default/attachment/diff-header.html.tmpl template/en/default/attachment/edit.html.tmpl template/en/default/attachment/list.html.tmpl template/en/default/attachment/updated.html.tmpl template/en/default/bug/comments.html.tmpl template/en/default/bug/create/create-guided.html.tmpl template/en/default/bug/create/create.html.tmpl template/en/default/bug/create/created.html.tmpl template/en/default/bug/edit.html.tmpl template/en/default/bug/field.html.tmpl template/en/default/bug/process/header.html.tmpl template/en/default/bug/show.html.tmpl template/en/default/bug/show.xml.tmpl template/en/default/config.rdf.tmpl template/en/default/email/whine.txt.tmpl template/en/default/filterexceptions.pl template/en/default/flag/list.html.tmpl template/en/default/global/common-links.html.tmpl template/en/default/global/confirm-action.html.tmpl template/en/default/global/field-descs.none.tmpl template/en/default/global/footer.html.tmpl template/en/default/global/header.html.tmpl template/en/default/global/user-error.html.tmpl template/en/default/global/userselect.html.tmpl template/en/default/list/edit-multiple.html.tmpl template/en/default/list/list.html.tmpl template/en/default/pages/fields.html.tmpl template/en/default/pages/release-notes.html.tmpl template/en/default/search/boolean-charts.html.tmpl template/en/default/search/form.html.tmpl template/en/default/search/search-report-graph.html.tmpl template/en/default/search/search-report-table.html.tmpl template/en/default/setup/strings.txt.pl token.cgi userprefs.cgi xml.cgi xmlrpc.cgi Canonical link: https://commits.webkit.org/155623@main git-svn-id: https://svn.webkit.org/repository/webkit/trunk@174764 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2014-10-16 16:00:58 +00:00
via a web browser.