#!/usr/bin/perl

my $scriptname;

BEGIN {
    $scriptname = `basename $0`;
    chomp $scriptname;

    sub print_help {
    print <<_STR_;
NAME:
    $scriptname: generic cron script for OPALS sites.
SYNOPSIS:
    PERL5LIB=/www/\$VERSION/module OPALS_CONF=/etc/opals/conf/\$SITECODE $0
_STR_
    }

    if (!$ENV{'PERL5LIB'} || !$ENV{'OPALS_CONF'}) {
        print_help();
        exit 1;
    }
}

use strict;

use Opals::Context;
use Opals::Mail qw(
    mail_sendQueuedMail
);
use Opals::Marc21 qw(
    mc21_import
    mc21_export
);
use Opals::MarcXml qw(
    mxml_processReplaceItemType
    mxml_processGE852
);
use Opals::Session qw(
    SessionHdl_clean
);
use Opals::Tb_Import qw(
    tb_m21_import
    tb_csv_import
);
use Opals::Template qw(
    tmpl_preference
);
use Opals::WebServiceClient qw(
    wsc_sendNextUpdateRequest2Union
    wsc_sendCircData
);

my $dbh = Opals::Context->dbh();
END { $dbh->disconnect(); }


################################################################################
my $backupRunning = `ps -ef | grep 'opals/bin/backup' | grep -v grep`;
if ($backupRunning) {
    print "Backup is running...\n";
    exit 1;
}
my $scriptname = `basename $0`;
chomp $scriptname;
my $isRunning = `ps -ef | grep $scriptname | grep $ENV{'OPALS_CONF'} | grep -v grep | wc -l`;
chomp $isRunning;
if ($isRunning > 1) {
    print "is running...\n";
    exit 2;
}


############################################################
my ($DB) = $dbh->selectrow_array('select database()');
print "----------------------------------------------\n";
print "Processing 8 requests on $DB...\n";
print "----------------------------------------------\n";

print "1.Import processing ...   ";
    mc21_import($dbh);
print "done.\n";

print "2.Export processing ...   ";
    mc21_export($dbh);
print "done.\n";

print "3.Replace Item Type processing ...   ";
    mxml_processReplaceItemType($dbh);
print "done.\n";

print "4.Globle Editor processing ...   ";
    mxml_processGE852($dbh);
print "done.\n";

print "5.Clean SessionHDL processing ...   ";
    SessionHdl_clean($dbh,24*60);
print "done.\n";

print "6.Send Next Update Request to Union processing ...   ";
    wsc_sendNextUpdateRequest2Union($dbh);
print "done.\n";

print "7.Send Circ Data processing ...    ";
    wsc_sendCircData($dbh);
print "done.\n";

print "8.Send Queued Mail processing ...   ";
    my $pref = tmpl_preference($dbh);
    mail_sendQueuedMail($dbh,$pref);
print "done.\n";
#tb_m21_import($dbh);
#tb_csv_import($dbh);


exit 0;
