#!/usr/bin/perl 

#comando.pl
#
#Description:
#
#Author:
#        user (user.user@opservices.com.br)
#
#03-03-2010 : Created 
#

use strict;
use Getopt::Long;
use POSIX;
use File::Basename;

#--------------------------------------------------
# Setting environment
#-------------------------------------------------- 
$ENV{"USER"}="opuser";
$ENV{"HOME"}="/home/opuser";

#--------------------------------------------------
# Global variables
#--------------------------------------------------
our $name = basename($0, ".pl");
our $version = "1.0";
our $path = "/usr/local/opmon/libexec";
our $temp_log = "$path/$name.log";
our $filename = "/usr/local/opmon/var/rw/opmon.cmd";
our ($opt_help, $opt_verbose, $opt_version, $opt_warn, $opt_crit);

my @metrics = ("", "", ""); # Generate performance data.
my @return = (); # Return to complete performance data.

sub main {

    # getoption();
     #my $filename = "opmon.cmd";
     if (-e $filename) {
         print "OK - O arquivo opmon.cmd existe!\n";
         exit(0);
     } else{
         print "CRITICO - O arquivo $filename nao existe!\n";
         exit(2);
     }

}

#--------------------------------------------------------------------------------------
sub getoption  {
     Getopt::Long::Configure('bundling');
     GetOptions(
            'V|version'               => \$opt_version,
            'c|critical=f'              => \$opt_crit,
            'h|help'                  => \$opt_help,
            'v|verbose=i'               => \$opt_verbose,
            'w|warning=f'               => \$opt_warn,
        );

     if($opt_help){
             printHelp();
              exit(1);
     }

     if($opt_version){
             print "$name.pl - '$version'\n";
             exit(1);
      }

     if(!$opt_verbose){
             $opt_verbose = 0;
     }

     if ((!$opt_warn) or (!$opt_crit)){
             printUsage();
              exit(1);
     }

}

#--------------------------------------------------------------------------------------
sub logger {

        return (0) if (not defined $opt_verbose);

        my $msg = shift (@_);
        my $perf = "";
        my $log = "$path/$name.log";
        my $counter = 0;

        foreach(@metrics){
                $perf .= "$_=$return[$counter];$opt_warn;$opt_crit;; ";
                $counter++;
        }
        my ($sec,$min,$hour,$mday,$mon,$year,$wday,$yday,$isdst)=localtime(time);
        $wday++;
        $yday++;
        $mon++;
        $year+=1900;
        $isdst++;
        if ($opt_verbose == 0){
                if (@metrics){
                         print "$msg | $perf\n";
                }
                else{
                         print "$msg\n";
                }
            }
            elsif ($opt_verbose == 1){
                        print "$msg\n";
            }

        else {
           open(LOG, ">>$log");
           printf LOG ("%02i/%02i/%i - %02i:%02i:%02i => %s\n",$mday,$mon,$year,$hour,$min,$sec,$msg);
           close(LOG);

  }

}
#--------------------------------------------------------------------------------------
sub printUsage {
       print <<EOB
Usage: $name.pl [OPTION]...

        -V, --version      Show version
        -c, --critical     Threshold to critical
        -h, --help         Show help
        -w, --warning      Threshold to warning

        -v, --verbose      0 = Print out to see in OpMon(Default)
                           1 = Print out in console for debug
                           2 = Send log to file
EOB
}
#--------------------------------------------------------------------------------------

sub printHelp {
                my $help = <<'HELP';
                Insert help program
HELP
                print $help;
}
#--------------------------------------------------------------------------------------
&main


