#!/usr/bin/perl -w
use strict;
use warnings;

use Digest::MD5 qw(md5 md5_hex md5_base64);
use MIME::Parser;
use MIME::Entity;
use MIME::Body;
use Getopt::Long;


use lib qw(Core);
use lib qw(Classes);

use Configuration;
use LocalConfiguration;


use DateTime;
use Email;
use Archiver;

my $BACKUP_DIRECTORY = "/data/backup/db";
my $DATABASE = "predictioncenter";
my $SCHEMA_NAME = "casp13";
my $PGDUMP_FILE = "/usr/bin/pg_dump";

my $current_time = DateTime->now( time_zone => 'America/Los_Angeles' );

my $schema_file = sprintf("%s/schema_%s_%dx%02dx%02d.sql", $BACKUP_DIRECTORY, $SCHEMA_NAME, $current_time->year, , $current_time->month, $current_time->day);

my $backup_command = sprintf("%s --port=5432 --schema=%s --inserts --column-inserts --file=%s %s", $PGDUMP_FILE, $SCHEMA_NAME, $schema_file, $DATABASE);
print "\n$backup_command\n\n";

exit(0);
if((0 == system($backup_command)) && (-e $schema_file)) {
    if(Archiver::archive($schema_file, sprintf("%s.tgz", $schema_file), 1)) {
        Email::send_email($CONFIG->{SUPPORT_EMAIL}, $CONFIG->{SUPPORT_EMAIL}, '', '', sprintf("Database Schema \"%s\" - Backup Success!", $SCHEMA_NAME), sprintf("Database Schema \"%s\" - Backup Success!", $SCHEMA_NAME));
    }
} else {
    Email::send_email($CONFIG->{SUPPORT_EMAIL}, $CONFIG->{SUPPORT_EMAIL}, '', '', sprintf("Database Schema \"%s\" - Backup Failed!", $SCHEMA_NAME), sprintf("Database Schema \"%s\" - Backup Failed!\n\n%s", $SCHEMA_NAME, $backup_command));
}

exit(0);
