#!@@GOODSH@@
# -*- sh -*-

: << =cut

=head1 NAME

ipac-ng - Skeleton-plugin to monitor ipac-ng rules. 

=head1 CONFIGURATION

No configuration

=head1 USAGE

To monitor a rule, copy ipac-ng and edit variables.

=head1 AUTHOR

Unknown author

=head1 LICENSE

GPLv2

=head1 MAGIC MARKERS

 #%# family=contrib
 #%# capabilities=autoconf

=cut

# Visible name of graph
TITLE="traffic"
# perlre(1) expressions passed to ipacsum -f. For more info
# `man ipacsum`, `man perlre`.
UP="upload rule"
DOWN="download rule"

if [ "$1" = "autoconf" ]; then
        if [ -x /usr/sbin/fetchipac ] && [ -x /usr/sbin/ipacsum ]; then
                echo yes
                exit 0
        else          
                echo no
                exit 0
        fi            
fi

if [ "$1" = "config" ]; then
        echo "graph_order down up"
        echo "graph_title $TITLE" 
        echo 'graph_args --base 1000'
        echo 'graph_vlabel b/s in (-) / out (+)'
        echo 'down.label received'              
        echo 'down.graph no'
        # Divide it by 1500 seconds (5m), to get b/s
        echo 'down.cdef down,1500,/'                
        echo 'up.label b/s'         
        echo 'up.negative down'
        echo 'up.cdef up,1500,/'
        exit 0
fi;

fetchipac || error=1  
if [ "$error" != "1" ]; then
        ipacsum -s 5m -x -f "$UP" | tail -n 1 | cut -d : -f 2 | awk \
                {'print "up.value " $1'}                             
        ipacsum -s 5m -x -f "$DOWN" | tail -n 1 | cut -d : -f 2 | awk \
                {'print "down.value " $1'}                             
else
        echo 'up.value 0'
        echo 'down.value 0'
fi
