Blame contrib/jm/quake-mrtg.pl

Packit 667938
#!/usr/bin/perl5
Packit 667938
#
Packit 667938
#  quake-mrtg.pl
Packit 667938
# 
Packit 667938
#  counts the number of players currently on a given
Packit 667938
#  quake2/quakeworld/unreal/etc server, using the 'qstat' 
Packit 667938
#  program available from: ftp://ftp.activesw.com/pub/quake/
Packit 667938
#
Packit 667938
#  Usage:
Packit 667938
#   Target[quakeserv]:  `quake-mrtg.pl quake.server.com 27910 Q2`
Packit 667938
#   
Packit 667938
#   ^^^ Gets usage from a Q2 server running on quake.server.com, 
Packit 667938
#       port 27910.
Packit 667938
#
Packit 667938
#  - joey miller, inficad communications, llc.
Packit 667938
#    <joeym@inficad.com>, 2/5/1999
Packit 667938
#
Packit 667938
Packit 667938
my($qstat) = "./qstat";
Packit 667938
Packit 667938
$| = 1;
Packit 667938
Packit 667938
if ( scalar(@ARGV) < 3 ) {
Packit 667938
    print STDERR "usage: $0 server.address port game-type\n\n";
Packit 667938
    print STDERR "\tgame-types: QS, QW, QWM, H2S, HWS, Q2, UNS, HLS, SNS\n";
Packit 667938
    print STDERR "\tQW = quakeworld, Q2 = quake2, etc, etc\n";
Packit 667938
    exit -1;
Packit 667938
}
Packit 667938
Packit 667938
my($serv) = $ARGV[0];
Packit 667938
my($port) = $ARGV[1];
Packit 667938
my($game) = $ARGV[2];
Packit 667938
Packit 667938
if ( ! open(QSTAT, "$qstat -raw : -default $game $serv:$port |") ) {
Packit 667938
    print STDERR "Couldn't exec $qstat\n";
Packit 667938
    exit -2;
Packit 667938
}
Packit 667938
Packit 667938
my($users);
Packit 667938
while(<QSTAT>) {
Packit 667938
    ($users) = (split(/:/))[6];
Packit 667938
    last;
Packit 667938
}
Packit 667938
close(QSTAT);
Packit 667938
Packit 667938
print "$users\n";
Packit 667938
print "$users\n";
Packit 667938
print "0\n";
Packit 667938
print "$serv:$port\n";
Packit 667938
    
Packit 667938