aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorKonstantin Ryabitsev <mricon@kernel.org>2011-12-09 18:48:06 -0500
committerKonstantin Ryabitsev <mricon@kernel.org>2011-12-09 18:48:06 -0500
commit86b7856ca909c3475497383888875042ca7e50eb (patch)
tree7b8cf7a3019549ca22ec22bee20dc25b769948c4
parent589f27ae1854965b79d662ff5c3686c63a4779ba (diff)
downloadkup-86b7856ca909c3475497383888875042ca7e50eb.tar.gz
Show 1 decimal when showing progress feedback.
-rw-r--r--ChangeLog1
-rwxr-xr-xkup-server28
2 files changed, 18 insertions, 11 deletions
diff --git a/ChangeLog b/ChangeLog
index 6dadd1f..aec651c 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,6 +1,7 @@
2011-12-08 Konstantin Ryabitsev <mricon@kernel.org> - master
* Allow specifying the key to use for gpg-sign-all.
* Remove kup.kernel.org as the default host setting.
+ * Show 1 decimal when reporting progress in kup-server.
2011-11-29 Konstantin Ryabitsev <mricon@kernel.org> - 0.3.2
* Give feedback during compression stage on the server, as that is
diff --git a/kup-server b/kup-server
index a6129ef..8ff50a1 100755
--- a/kup-server
+++ b/kup-server
@@ -336,8 +336,8 @@ sub percentage($$)
{
my($num, $den) = @_;
- my $v = eval { int(100*$num/$den); };
- return defined($v) ? $v : 100;
+ return 100 if $num eq $den || $den eq 0;
+ return sprintf('%.1f', 100*$num/$den);
}
sub get_blob($$@)
@@ -415,7 +415,7 @@ sub get_blob($$@)
if ($left == 0 ?
($prog_perc >= 0) : # Show 100% iff we already showed a progress bar
($now > $prog_time && $perc != $prog_perc)) {
- printf STDERR "%10u [%-50s] %3u%%\r", $len, '=' x ($perc >> 1), $perc;
+ printf STDERR "%10u [%-50s] %4s%%\r", $len, '=' x ($perc >> 1), $perc;
$prog_perc = $perc;
$prog_time = $now;
}
@@ -579,6 +579,14 @@ sub get_sign_data(@)
$have_sign = 1;
}
+sub term_children(@)
+{
+ my(%workers) = @_;
+ foreach my $c (keys %workers) {
+ kill('TERM', $c);
+ }
+}
+
sub make_compressed_data()
{
die if (!$have_data);
@@ -649,9 +657,8 @@ sub make_compressed_data()
if ($w == 0) {
my $now = time();
if ($now - $start_time >= $timeout_compress) {
- foreach my $c (keys %workers) {
- kill('TERM', $c);
- }
+ print STDERR "\n";
+ term_children(%workers);
fatal("Timeout compressing output data");
}
@@ -665,7 +672,7 @@ sub make_compressed_data()
foreach my $e (sort(keys %infds)) {
my $fpos = sysseek($infds{$e}, 0, SEEK_CUR);
push(@ostr,
- sprintf("%s:%3u%%", $e,
+ sprintf("%s:%4s%%", $e,
percentage($fpos, $tarsize)));
}
print STDERR "Compressing: ", join(' ', @ostr), "\r";
@@ -674,9 +681,8 @@ sub make_compressed_data()
my $e = $workers{$w};
undef $workers{$w};
if ($status) {
- foreach my $c (keys %workers) {
- kill('TERM', $c);
- }
+ print STDERR "\n";
+ term_children(%workers);
fatal("Failed to compress output data");
}
@@ -684,7 +690,7 @@ sub make_compressed_data()
my $zpc = percentage($zsize, $tarsize);
- syslog(LOG_DEBUG, "%s compression: %u -> %u bytes (%d%%)",
+ syslog(LOG_DEBUG, "%s compression: %u -> %u bytes (%s%%)",
$e, $tarsize, $zsize, $zpc);
$nworkers--;