summaryrefslogtreecommitdiff
path: root/tools
diff options
context:
space:
mode:
Diffstat (limited to 'tools')
-rw-r--r--tools/logger.pl34
1 files changed, 34 insertions, 0 deletions
diff --git a/tools/logger.pl b/tools/logger.pl
new file mode 100644
index 00000000..1ec5441a
--- /dev/null
+++ b/tools/logger.pl
@@ -0,0 +1,34 @@
+#!/usr/bin/perl
+# logger.pl: masks long meaningless output with pretty lines of dots
+# Details: 1) reads lines from STDIN and echos them on STDOUT,
+# 2) print a '.' to STDERR every $N lines.
+# 3) print a newline after a sequence of $C dots
+
+use strict;
+use warnings;
+
+# make sure all output gets displayed immediately
+$| = 1;
+
+# TODO: add -n and -c options w/ zero checks)
+# line and column limits
+my $N = 10;
+my $C = 72;
+
+# current line and column counters
+my $n = 0;
+my $c = 0;
+
+# read all lines from STDIN
+while (<STDIN>)
+{
+ # echo line to output
+ print STDOUT $_;
+ # only display progress every Nth step
+ next unless ++$n % $N;
+ print STDERR ".";
+ # wrap at column C to provide fixed-width rows of dots
+ print STDERR "\n" unless ++$c % $C;
+}
+
+print STDERR "\n"