]> git.etc.gen.nz Git - mythtv-status.git/commitdiff
Refactor the code for working out the disk space percentage.
authorAndrew Ruthven <andrew@etc.gen.nz>
Sat, 8 Dec 2007 05:16:38 +0000 (18:16 +1300)
committerAndrew Ruthven <andrew@etc.gen.nz>
Sat, 8 Dec 2007 05:16:38 +0000 (18:16 +1300)
bin/mythtv-status

index 51247d19750416583c391606f9d7a7e2d560856e..177655324ecca34e76c09d3012a864a7ff4530bd 100755 (executable)
@@ -203,15 +203,7 @@ my @blocks = (
     'format' => 'one line',
     'subs' => {
       'percent' => sub {
-        my $vars = shift;
-        my $percent = sprintf("%.1f",
-    $vars->{'_total_used'} / $vars->{'_total_total'} * 100);
-  if ($percent >= $disk_space_warn) {
-    push @alerts, "DISK SPACE";
-    return "$warning$percent\%$normal";
-  } else {
-    return "$safe$percent\%$normal";
-  }
+        calc_disk_space_percentage($_[0]->{'_total_used'}, $_[0]->{'_total_total'})
       }
     }
   },
@@ -229,15 +221,7 @@ my @blocks = (
     'format' => 'one line',
     'subs' => {
       'percent' => sub {
-        my $vars = shift;
-        my $percent = sprintf("%.1f",
-    $vars->{'drive_total_used'} / $vars->{'drive_total_total'} * 100);
-  if ($percent >= $disk_space_warn) {
-    push @alerts, "DISK SPACE";
-    return "$warning$percent\%$normal";
-  } else {
-    return "$safe$percent\%$normal";
-  }
+        calc_disk_space_percentage($_[0]->{'drive_total_used'}, $_[0]->{'drive_total_total'})
       }
     }
   },
@@ -595,6 +579,27 @@ sub substitute_vars {
   return defined $skip ? undef : $template;
 }
 
+# Work out the disk space percentage, possibly setting a flag that we should
+# raise an alert.
+sub calc_disk_space_percentage {
+  my ($used, $total) = @_;
+
+  if (! (defined $used && defined $total && $total > 0) ){
+    warn "Something is wrong calculating the disk space percentage.\n";
+    return 'unknown';
+  }
+
+  my $percent = sprintf("%.1f",
+    $used / $total * 100);
+
+  if ($percent >= $disk_space_warn) {
+    push @alerts, "DISK SPACE";
+    return "$warning$percent\%$normal";
+  } else {
+    return "$safe$percent\%$normal";
+  }
+}
+
 # Beautify numbers by sticking commas in.
 sub commify {
   my ($num) = shift;