#! /usr/bin/perl

use File::stat;


die "Usage: $0 <file>\n" unless (@ARGV == 1);


my $file = shift(@ARGV);

$| = 1;
undef $/;

my $text = readtext(0);
my $lastsize = length($text);

my @lines = split("\n", $text);
for (my $i = @lines > 10 ? @lines - 10 : 0; $i < @lines - 1; $i++) {
    print $lines[$i] . "\n";
}
print $lines[@lines - 1];
if ($text =~ /\n$/) {
    print "\n";
}

while (1) {
    sleep(1);
    my $newtext = readtext($lastsize);
    if ($newtext ne '') {
	print $newtext;
	$lastsize += length($newtext);
    }
}

sub readtext {
    my $from = shift;
    open($fd, "<", $file) || die "Cannot open $file: $!";
    seek($fd, $from, 0) || die "Seek failed: $!";
    my $newdata = <$fd>;
    close($fd);
    $newdata =~ s/\0*$//;
    return $newdata;
}
