From f8fd2befb9b33967beb35d8e86a57f0de9b326e5 Mon Sep 17 00:00:00 2001
From: "lpsolit%gmail.com" <>
Date: Sat, 17 Mar 2007 01:27:44 +0000
Subject: =?UTF-8?q?Bug=2045207:=20Automated=20sanity=20check=20that=20can?=
 =?UTF-8?q?=20send=20an=20e-mail=20if=20there=20are=20problems=20-=20Patch?=
 =?UTF-8?q?=20by=20Fr=C3=83=C2=A9d=C3=83=C2=A9ric=20Buclin=20<LpSolit@gmai?=
 =?UTF-8?q?l.com>=20r=3Dmkanat=20a=3DLpSolit?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

---
 sanitycheck.cgi | 35 ++++++++++++++++++++++++++---------
 1 file changed, 26 insertions(+), 9 deletions(-)

(limited to 'sanitycheck.cgi')

diff --git a/sanitycheck.cgi b/sanitycheck.cgi
index 873432fb9..8be69dec6 100755
--- a/sanitycheck.cgi
+++ b/sanitycheck.cgi
@@ -45,8 +45,19 @@ sub get_string {
 
 sub Status {
     my ($san_tag, $vars, $alert) = @_;
-    my $start_tag = $alert ? '<p class="alert">' : '<p>';
-    print $start_tag . get_string($san_tag, $vars) . "</p>\n";
+    my $cgi = Bugzilla->cgi;
+    return if (!$alert && Bugzilla->usage_mode == USAGE_MODE_CMDLINE && !$cgi->param('verbose'));
+
+    if (Bugzilla->usage_mode == USAGE_MODE_CMDLINE) {
+        my $output = $cgi->param('output') || '';
+        my $linebreak = $alert ? "\nALERT: " : "\n";
+        $cgi->param('error_found', 1) if $alert;
+        $cgi->param('output', $output . $linebreak . get_string($san_tag, $vars));
+    }
+    else {
+        my $start_tag = $alert ? '<p class="alert">' : '<p>';
+        print $start_tag . get_string($san_tag, $vars) . "</p>\n";
+    }
 }
 
 ###########################################################################
@@ -60,7 +71,7 @@ my $dbh = Bugzilla->dbh;
 my $template = Bugzilla->template;
 my $vars = {};
 
-print $cgi->header();
+print $cgi->header() unless Bugzilla->usage_mode == USAGE_MODE_CMDLINE;
 
 # Make sure the user is authorized to access sanitycheck.cgi.
 # As this script can now alter the group_control_map table, we no longer
@@ -71,8 +82,10 @@ $user->in_group("editcomponents")
                                      action => "run",
                                      object => "sanity_check"});
 
-$template->process('admin/sanitycheck/list.html.tmpl', $vars)
-  || ThrowTemplateError($template->error());
+unless (Bugzilla->usage_mode == USAGE_MODE_CMDLINE) {
+    $template->process('admin/sanitycheck/list.html.tmpl', $vars)
+      || ThrowTemplateError($template->error());
+}
 
 ###########################################################################
 # Users with 'editkeywords' privs only can only check keywords.
@@ -234,8 +247,10 @@ if ($cgi->param('rescanallBugMail')) {
 
     Status('send_bugmail_end') if scalar(@$list);
 
-    $template->process('global/footer.html.tmpl', $vars)
-        || ThrowTemplateError($template->error());
+    unless (Bugzilla->usage_mode == USAGE_MODE_CMDLINE) {
+        $template->process('global/footer.html.tmpl', $vars)
+          || ThrowTemplateError($template->error());
+    }
     exit;
 }
 
@@ -937,5 +952,7 @@ if (scalar(@$badbugs > 0)) {
 
 Status('checks_completed');
 
-$template->process('global/footer.html.tmpl', $vars)
-  || ThrowTemplateError($template->error());
+unless (Bugzilla->usage_mode == USAGE_MODE_CMDLINE) {
+    $template->process('global/footer.html.tmpl', $vars)
+      || ThrowTemplateError($template->error());
+}
-- 
cgit v1.2.1