#!/usr/bin/perl
#
# Script to export assets
#

use strict;

use Getopt::Std;
use File::Basename;

use lib 'c:/app/tools/appuser/lib';
use lib 'c:/app/tools/common/lib';
use lib 'c:/app/tools/data_classes/lib';
use lib 'c:/app/tools/distribution/lib';
use lib 'c:/app/tools/job/lib';
use lib 'c:/app/tools/mediaserve/lib';
use lib 'c:/app/tools/metadata/lib';
use lib 'c:/app/tools/rps/lib';
use lib 'c:/app/tools/sysadmin/lib';

use lib '/app/tools/distribution/lib';
use Distribution::Export::Exporter;

my %opt;
usage() unless getopts( 'a:c:r:x:b:qhldvf', \%opt );

if ( $opt{l} ) {
    list_clients( $ARGV[0] );
}

if ( $opt{h} ) {
    usage();
}

my $matcher = new Distribution::Export::Exporter(
    client_id => $opt{c},
    dest_dir  => $ARGV[0],
    force     => $opt{f},
    quiet     => $opt{q},
    verbose   => $opt{v},
    album_id  => $opt{a},
    debug     => $opt{d}
);

$matcher->run();

sub usage {
    my $prog = basename $0;
    print <<EofUSAGE;

usage: $prog [-c client_id] [-r report_email_address] [-x error_email_address] [-l client_name/pattern] [-h] [-d] dest_dir
            -c - Client ID (if not specified then run for all clients)
            -l - List client ids (host pattern is optional)
            -d - display debug information to STDERR
            -v - display verbose debug information to STDERR
            -q - Do not output summary report
            -h - display this screen
EofUSAGE

    exit 1;
}

sub list_clients {
    my $host = shift;
    my $key;
    foreach $key ( sort { $a <=> $b } keys(%Common::RSDB::CLIENT_DB) ) {
        printf( "%-20s %-10s ID: %s\n", $Common::RSDB::CLIENT_DB{$key}->{db_name}, "($Common::RSDB::CLIENT_DB{$key}->{host_id})", $key )
          if ( !defined($host) || $Common::RSDB::CLIENT_DB{$key}->{db_name} =~ /$host/i );
    }
    exit 1;
}
