#!/usr/local/bin/perl -w
# -*-perl-*-

# Netzentlastende Version von rwho und ruptime,

{
    $0 =~ s-.*/--;			# basename=ruptime|rwho

    if ($0 =~ /^rwho/ && $ARGV[0] eq 'friends')
    {
	chdir; open (FRIENDS, ".friends");
	push (@ARGV, grep (chop, <FRIENDS>));
    }

    $grep = join ('\b|\b', @ARGV) || "."; # Suchausdrücke als Argument

    $CENTRAL = "/home/rwho/$0";
    $LOCAL = "/tmp/$0";

    if (umask 0, open (LOCAL, "+>>$LOCAL") && -f LOCAL
	|| unlink $LOCAL && open (LOCAL, "+>>$LOCAL"))
    {
	if (-M _ <= 0 || -M _ > 1/288 || ! -f _)
	{
	    if (open (CENTRAL))
	    {
		# warn "refetching\n";
		truncate (LOCAL, 0);
		seek (LOCAL, 0, 0);
		print LOCAL while <CENTRAL>;
		utime $^T, (stat CENTRAL)[9], $LOCAL;
	    }
	    else
	    {
		warn ("$CENTRAL: $!\n");
	    }
	}
	seek (LOCAL, 0, 0);
    }	
    else
    {
	warn "$LOCAL: $!\n";
	open (LOCAL, $CENTRAL) || die "$CENTRAL: $!\n";
    }

    /$grep\b/o && print while <LOCAL>;
}
