]> git.etc.gen.nz Git - mythtv-status.git/commitdiff
Fix up the one liners to be more consistent with the other blocks.
authorAndrew Ruthven <andrew@etc.gen.nz>
Thu, 31 Jul 2008 00:58:54 +0000 (12:58 +1200)
committerAndrew Ruthven <andrew@etc.gen.nz>
Thu, 31 Jul 2008 00:58:54 +0000 (12:58 +1200)
- Move the html_pre and html_post options for one liners into the block.
- Add support for suppressing printing of block names, use this for one
  liners.
- Move procesing of html_pre and html_post options to apply to all block
  types.
- Fix block type "sub" to support result_html, and if no result_html is
  present to just use the result output.

bin/mythtv-status

index bf91e8c119792969713d285b2d800a136e640f4f..94489d45e71678d266024dbfbe35bdd7f98ca894 100755 (executable)
@@ -112,10 +112,6 @@ if (defined $colour && scalar(@email) == 1) {
 # Is a warning present?
 my $warn_present = 0;
 
-# would be good to have these in the defaults structure.  I'll try that later
-my $oneliners_html_pre = "<table>";
-my $oneliners_html_post = "</table>";
-
 # Allow setting some defaults for the output blocks.
 my %defaults = (
   'schedule' => {
@@ -158,10 +154,13 @@ my @blocks = (
   # All the one liners together
   {
     'name' => 'One Liners',
+    'hide_name' => 1,
     'type' => 'sub',
     'template' => '',
     'template_html' => '',
-    'sub' => sub { return 'Place holder' },
+    'template_html_pre' => '<table>',
+    'template_html_post' => '</table>',
+    'sub' => sub { return 'One Liners Place holder' },
   },
 
   # Date/Time from server
@@ -492,8 +491,8 @@ for my $block (@blocks) {
 
   } elsif ($block->{'type'} eq 'sub') {
     if (defined $block->{'sub'}) {
-      $result = &{ $block->{'sub'} }($block);
-      $result_html = &{ $block->{'sub'} }($block) if (defined $block->{'template_html'});
+      ($result, $result_html) = &{ $block->{'sub'} }($block);
+      $result_html ||= $result;
     }
   }
 
@@ -503,17 +502,25 @@ for my $block (@blocks) {
     if ($block->{'format'} eq 'one line') {
       push @oneliners, [ $block->{'name'}, $result ];
     } else {
-      $output .= "$block->{'name'}:\n";
+      $output .= "$block->{'name'}:\n"
+        unless defined $block->{'hide_name'};
       $output .= $result . "\n\n";
     }
   }
 
   if (defined $result_html && $result_html ne '' && ! defined $hide) {
     $exit_value ||= $warn_present;
+
+    $result_html =
+      ($block->{'template_html_pre'}  ? $block->{'template_html_pre'} : '')
+      . $result_html
+      . ($block->{'template_html_post'} ? $block->{'template_html_post'} : '');
+
     if ($block->{'format'} eq 'one line') {
       push @oneliners_html, [ "<tr><th>$block->{'name'}</th>", $result_html ];
     } else {
-      $html .= "<h2>$block->{'name'}</h2>\n";
+      $html .= "<h2>$block->{'name'}</h2>\n"
+        unless defined $block->{'hide_name'};
       $html .= $result_html . "\n\n";
     }
   }
@@ -538,30 +545,18 @@ if (scalar(@oneliners) > 0) {
   }
 
   # What a hacky way of putting the one liners where I want them...
-  $output =~ s/^One Liners:\nPlace holder\n/$oneliners/m;
+  $output =~ s/^One Liners Place holder\n/$oneliners/m;
 }
 
 # Deal with the one liners for html - this should probably be a sub now
 if (scalar(@oneliners_html) > 0) {
-
-  # Find the longest header
-  $length = 0;
-  for $line (@oneliners_html) {
-    if (length($line->[0]) > $length) {
-      $length = length($line->[0]);
-    }
-  }
-
-  # Put the one liners together, with leading dots to the colon.
   my $oneliners_html = "";
-  $oneliners_html .= $oneliners_html_pre;
   for $line (@oneliners_html) {
     $oneliners_html .= "$line->[0] $line->[1]\n";
   }
-  $oneliners_html .= $oneliners_html_post;
 
   # What a hacky way of putting the one liners where I want them...
-  $html =~ s/^Place holder$/$oneliners_html/m;
+  $html =~ s/One Liners Place holder/$oneliners_html/m;
 }
 
 # Either print the status out, or email it.
@@ -741,8 +736,6 @@ sub process_xml {
   my @lines;
   my @lines_html;
 
-  if (defined $block->{'template_html_pre'}) {push @lines_html, $block->{'template_html_pre'};}
-
   for my $item (@{ $items }) {
     my %vars;
     for my $key (@{ $block->{'attrs'} }) {
@@ -764,10 +757,7 @@ sub process_xml {
 
   }
 
-  if (defined $block->{'template_html_post'}) {push @lines_html, $block->{'template_html_post'};}
-
   return ( join("\n", @lines) , join("\n", @lines_html) );
-
 }
 
 sub process_conflicts {