#!/usr/athena/bin/perl

$user  = shift(@ARGV) || "xbozicev";
$hosts = shift(@ARGV) || "/mit/bert/PERL/hosts.zoo";

open(HOSTS, $hosts) || die "ERROR: can't open $hosts\n";

sub check_loc {
    if (@_[0] =~ /^#/) { return; }

    $host = (split(/\./,@_[1]))[0];
    print "$host:";
    $i=length($host);
    while ($i < 15) {print " "; $i++;}

    open(FINGER, "/usr/athena/bin/finger $user\@@_[0] 2>&1 |");
    $n=0;
    while(<FINGER>) {
	if (/^connect: *(.*)$/ || /\]connect: *(.*)$/) {print "$1.\n"; $n++;}
	elsif (/^Last login/ || /^Last seen/) {print "Not logged in.\n"; $n++;}
	elsif (/^On (since .+ on .+)/) {print "LOGGED IN $1\n"; $n++;}
	elsif (/^Never logged in./) {print "Never logged in.\n"; $n++;}
    }
    if (! $n) {print "No useful finger info.\n";}
}

print "Checking status of \"$user\" over $hosts:\n";

while(<HOSTS>) {
    chop;
    &check_loc (split("\t"));
}

print "...done\n"
