X-Git-Url: http://git.annexia.org/?a=blobdiff_plain;f=tools%2Fvirt-df;h=17aed4a2cd66b97cdf36a19b2847d1cbfb88859f;hb=ce95be8b185ce697816c3446406d7129e01cc0e1;hp=81e17cda33024bda0e35fa763b92fc175f91813b;hpb=dda10cd9357169d5c55d9d49e270a6202971b8c0;p=libguestfs.git diff --git a/tools/virt-df b/tools/virt-df index 81e17cd..17aed4a 100755 --- a/tools/virt-df +++ b/tools/virt-df @@ -23,11 +23,13 @@ use Sys::Guestfs; use Sys::Guestfs::Lib qw(open_guest get_partitions resolve_windows_path inspect_all_partitions inspect_partition inspect_operating_systems mount_operating_system inspect_in_detail); + use Pod::Usage; use Getopt::Long; use Data::Dumper; -use File::Temp qw/tempdir/; use XML::Writer; +use POSIX qw(ceil); + use Locale::TextDomain 'libguestfs'; =encoding utf8 @@ -107,8 +109,8 @@ my $csv; =item B<--csv> -Write out the results in CSV format (comma-separated values). This -format can be imported easily into databases and spreadsheets, but +Write out the results in CSV format (comma-separated values). This format +can be imported easily into databases and spreadsheets, but read L below. =cut @@ -231,9 +233,7 @@ sub print_stat push @cols, ($blocks-$bfree)*$factor; # total 1K blocks used push @cols, $bavail*$factor; # total 1K blocks available - # XXX %used column comes out different from the native 'df' - # program. Need to check how 'df' calculates this. - push @cols, 100.0 - 100.0 * $bavail / $blocks; + push @cols, 100.0 - 100.0 * $bfree / $blocks; if ($human) { $cols[2] = human_size ($cols[2]); @@ -249,9 +249,7 @@ sub print_stat push @cols, $files-$ffree; push @cols, $ffree; - # XXX %used column comes out different from the native 'df' - # program. Need to check how 'df' calculates this. - push @cols, 100.0 - 100.0 * $favail / $files; + push @cols, 100.0 - 100.0 * $ffree / $files; } print_cols (@cols); @@ -293,7 +291,10 @@ sub print_cols printf ("%-36s", $label); print "\n"," "x36 if length ($label) > 36; - my $percent = sprintf "%3.1f%%", $_[5]; + # Use 'ceil' on the percentage in order to emulate + # what df itself does. + my $percent = sprintf "%3d%%", ceil($_[5]); + printf ("%10s %10s %10s %5s\n", $_[2], $_[3], $_[4], $percent); } else { printf ("\"%s\",\"%s\",%d,%d,%d,%.1f%%\n", @_); @@ -349,11 +350,11 @@ L. =head1 AUTHOR -Richard W.M. Jones L +Richard W.M. Jones L =head1 COPYRIGHT -Copyright (C) 2009 Red Hat Inc. +Copyright (C) 2009-2010 Red Hat Inc. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by