#!/usr/bin/perl -w

use strict;

my ($Args) = @ARGV;

my $expecter = "/path/to/beboxstats.expect";

if ($Args) {

        # work out line to grab
        if ($Args eq 'autoconf') {
                # Check the expect script that polls the router exists
                unless ( -e $expecter ) {
                        print "no (Can't find expect script. Check value of \$expecter: $expecter)\n";
                } else {
                        print "yes\n";
                }

        } elsif ($Args eq 'config') { # print out plugin parameters
                printf("
graph_title bebox line stats
graph_vlabel deciBels
graph_category network
graph_info This graph shows the various line parameters
attenuationdownstream.label Downstream Attenuation
attenuationupstream.label Upstream Attenuation
margindownstream.label Downstream Noise Margin
marginupstream.label Upstream Noise Margin
outputpowerdownstream.label Downstream Output Power
outputpowerupstream.label Upstream Output Power
margindownstream.type GAUGE
outputpowerupstream.type GAUGE
attenuationdownstream.type GAUGE
marginupstream.type GAUGE
outputpowerdownstream.type GAUGE
attenuationupstream.type GAUGE
                ");
                # .label is the Key on the graph
        } else {
                printf("Usage: $0
                        No arguments: print line stats
                        autoconf: print 'yes'
                        config: print config info for Munin\n");
        }

} else {
        # if no arguments, just fetch the data and print it out

my @insplitted = split(' ', `$expecter | grep dB`);

print "margindownstream.value $insplitted[3]\n";
print "marginupstream.value $insplitted[4]\n";

print "attenuationdownstream.value $insplitted[8]\n";
print "attenuationupstream.value $insplitted[9]\n";

print "outputpowerdownstream.value $insplitted[13]\n";
print "outputpowerupstream.value $insplitted[14]\n";
}


