12345678910111213141516171819202122232425262728293031323334353637383940414243444546 |
- #!/usr/bin/perl -w
-
- use strict;
- use warnings;
-
- use Getopt::Long;
-
- my $opts;
- $opts->{no_header} = 0;
- $opts->{delay} = 2;
- $opts->{frames} = "-/|\\";
-
- GetOptions (
- "no-header" => \$opts->{no_header},
- "usage" => \$opts->{usage},
- "help" => \$opts->{usage},
- "delay=i" => \$opts->{delay},
- "frames=s" => \$opts->{frames},
- ) or &usage;
-
- &usage if $opts->{usage};
-
- sub usage {
- print "usage: watchdump.pl --no-header --delay=SEC --frames=CHARS FILE\n";
- exit 0;
- }
-
- my @frames = split "", $opts->{frames};
- my $frame_num = 0;
-
- sub get_frame {
- my $frame = $frames[$frame_num];
- $frame_num++;
- $frame_num = 0 if $frame_num > $#frames;
- return $frame;
- }
-
- my $file = shift @ARGV or &usage;
-
- while (1) {
- system("clear");
- printf "[%s] watching: %s\n%s\n", &get_frame(), $file, "=" x 80
- unless $opts->{no_header};
- print `cat $file`;
- sleep $opts->{delay};
- }
|