Changed precision of gigabyte sizes to be xx.xx.
authorAlan J. Pippin <ajp@pippins.net>
Mon, 3 Mar 2008 14:14:00 +0000 (07:14 -0700)
committerAlan J. Pippin <ajp@pippins.net>
Mon, 3 Mar 2008 14:14:00 +0000 (07:14 -0700)
Made column width of filesystem dynamically sized.

zfs-log-parser
zfs-snapshot-totals

index 71496094095a85ba507a9e2679e625fe66a9b16d..565772591fb6ef6b6e19d0e4c3cc75c712022d6b 100755 (executable)
@@ -33,7 +33,7 @@ sub adjust_duration {
 
 sub adjust_data {
     my ($data) = @_;
 
 sub adjust_data {
     my ($data) = @_;
-    if($data > ($giga)) { $data = int($data / $giga); $data = "$data"."Gb"; }
+    if($data > ($giga)) { $data = $data / $giga; $data = sprintf("%2.2fGb",$data); }
     elsif($data > ($mega)) { $data = int($data / $mega); $data = "$data"."Mb"; }
     elsif($data > ($kilo)) { $data = int($data / $kilo); $data = "$data"."Kb"; }
     return $data;
     elsif($data > ($mega)) { $data = int($data / $mega); $data = "$data"."Mb"; }
     elsif($data > ($kilo)) { $data = int($data / $kilo); $data = "$data"."Kb"; }
     return $data;
index 09abb7457660aa3f4e4b967bad9afea27fcb78a2..be223d94e7720e50bcec02a67ffc37653aaceedf 100755 (executable)
@@ -5,11 +5,12 @@
 $kilo = 1024;
 $mega = 1024 * 1024;
 $giga = 1024 * 1024 * 1024;
 $kilo = 1024;
 $mega = 1024 * 1024;
 $giga = 1024 * 1024 * 1024;
+$maxlen = 0;
 
 sub adjust_size
 {
   my ($size) = @_;
 
 sub adjust_size
 {
   my ($size) = @_;
-  if($size > ($giga)) { $size = int($size / $giga); $size = "$size"."G"; }
+  if($size > ($giga)) { $size = $size / $giga; $size = sprintf("%2.2fG",$size); }
   elsif($size > ($mega)) { $size = int($size / $mega); $size = "$size"."M"; }
   elsif($size > ($kilo)) { $size = int($size / $kilo); $size = "$size"."K"; }
   return $size;
   elsif($size > ($mega)) { $size = int($size / $mega); $size = "$size"."M"; }
   elsif($size > ($kilo)) { $size = int($size / $kilo); $size = "$size"."K"; }
   return $size;
@@ -21,6 +22,7 @@ foreach $snapshot (@snapshots)
   if($snapshot =~ /(\S+)\@(\S+)\s+(\S+)\s+/) {
     $filesystem = $1;
     $size = $3;
   if($snapshot =~ /(\S+)\@(\S+)\s+(\S+)\s+/) {
     $filesystem = $1;
     $size = $3;
+    if(length($filesystem) > $maxlen) { $maxlen = length($filesystem); }
     if($size =~ /k/i) { $size = $size * $kilo; }
     if($size =~ /m/i) { $size = $size * $mega; }
     if($size =~ /g/i) { $size = $size * $giga; }
     if($size =~ /k/i) { $size = $size * $kilo; }
     if($size =~ /m/i) { $size = $size * $mega; }
     if($size =~ /g/i) { $size = $size * $giga; }
@@ -29,18 +31,19 @@ foreach $snapshot (@snapshots)
   }
 }
 
   }
 }
 
-printf "%-30s %-15s %-10s\n","ZFS Filesystem","Snapshots Size","Num Snapshots";
-printf "%-30s %-15s %-10s\n","--","--","--";
+$maxlen=$maxlen+2;
+printf "%-${maxlen}s %-15s %-10s\n","ZFS Filesystem","Snapshots Size","Num Snapshots";
+printf "%-${maxlen}s %-15s %-10s\n","--","--","--";
 foreach $key (sort keys %totals)
 {
   $size = $totals{$key}{size};
   $total_size += $size;
   $total_snapshots += $totals{$key}{snapshots};
   $size = &adjust_size($size);
 foreach $key (sort keys %totals)
 {
   $size = $totals{$key}{size};
   $total_size += $size;
   $total_snapshots += $totals{$key}{snapshots};
   $size = &adjust_size($size);
-  printf "%-30s %-15s %-10s\n", $key, $size, $totals{$key}{snapshots};
+  printf "%-${maxlen}s %-15s %-10s\n", $key, $size, $totals{$key}{snapshots};
 }
 
 $total_size = &adjust_size($total_size);
 }
 
 $total_size = &adjust_size($total_size);
-printf "%-30s %-15s %-10s\n","--","--","--";
-printf "%-30s %-15s %-10s\n","Total Snapshots",$total_size,$total_snapshots;
+printf "%-${maxlen}s %-15s %-10s\n","--","--","--";
+printf "%-${maxlen}s %-15s %-10s\n","Total Snapshots",$total_size,$total_snapshots;