#!/usr/bin/perl 

package nagios_libs;
use strict;

use vars       qw(@ISA @EXPORT @EXPORT_OK);

require Exporter;
@ISA = qw(Exporter);

@EXPORT		= qw(NAGIOS_SetStatus NAGIOS_Add NAGIOS_Send NAGIOS_Debug NAGIOS_Add $NAGIOS_DEBUG %STATES $NAGIOS_STATUS $N_COLOR_GREEN $N_COLOR_RED $N_COLOR_YELLOW $N_COLOR_CLEAR);



#########################
# A mettre dans une lib #
#########################

# Global
our %STATES=('OK'=>0,'WARNING'=>1,'CRITICAL'=>2,'UNKNOWN'=>3,'DEPENDENT'=>4);
our $NAGIOS_STATUS=$STATES{'OK'};
our $NAGIOS_DEBUG=0;

# Colors
our $N_COLOR_GREEN="<img src=images/green.gif>";
our $N_COLOR_RED="<img src=images/red.gif>";
our $N_COLOR_YELLOW="<img src=images/yellow.gif>";
our $N_COLOR_CLEAR="<img src=images/clear.gif>";

my $STATE_OK_STR = "OK";
my $STATE_WARNING_STR="WARNING";
my $STATE_CRITICAL_STR="CRITICAL";
my $STATE_UNKNOWN_STR="UNKNOWN";

my $STATUS_STR=$STATE_OK_STR;
my $STATUS_SHORT="";
my $PERFDATA;
my $MESSAGE="";




sub NAGIOS_Debug {

        if ( $NAGIOS_DEBUG == 1 )
        {
                print "@_";
        }

}

sub NAGIOS_Add
{
	my ($s) = @_;
        $MESSAGE="$MESSAGE$s";
}


sub NAGIOS_Send
{
	my ($s) = @_;

	if ( ! $s eq "" )
	{
		$PERFDATA=" | $s";
	}
	else
	{
		$PERFDATA="";
	}

        print  "$STATUS_STR $STATUS_SHORT$PERFDATA\n$MESSAGE";
}


sub NAGIOS_SetStatus
{
	my ($f, $s) = @_;

        if ( ! $s eq "" )
        {
                if (!  $STATUS_SHORT eq "" )
                {
			if( $f != $STATES{'OK'} && $f >= $NAGIOS_STATUS )
			{
	                	$STATUS_SHORT="$s, $STATUS_SHORT";
			}
			else
			{
	                	$STATUS_SHORT="$STATUS_SHORT, $s";
			}
                }
		else
		{
               	 	$STATUS_SHORT=$s;
		}
        }


        if ( $f > $NAGIOS_STATUS )
        {
                $NAGIOS_STATUS=$f;


                if ( $NAGIOS_STATUS == $STATES{'WARNING'}  )
                {
                       $STATUS_STR=$STATE_WARNING_STR;
		}
                elsif ( $NAGIOS_STATUS == $STATES{'CRITICAL'} )
		{
			$STATUS_STR=$STATE_CRITICAL_STR;
		}
                elsif ( $NAGIOS_STATUS == $STATES{'OK'} )
		{
                	$STATUS_STR=$STATE_OK_STR;
		}
       } 


}

1;

