package XAS::Apps::Base::ExtractGlobals;

our $VERSION = '0.01';

use Try::Tiny;
use XAS::Class
  version => $VERSION,
  base    => 'XAS::Lib::App',
;

# ----------------------------------------------------------------------
# Public Methods
# ----------------------------------------------------------------------

sub parse_file {
    my $self = shift;

    my $fh;
    my $database = $self->database;

    open($fh, "<", $self->file);

    while (<$fh>) {

        if ($_ =~ m/^\\connect $database/) {

            print $_;

            while (<$fh>) {

                return if ($_ =~ m/^\\connect/);

                print $_;

            }

        }

    }

}

sub main {
    my $self = shift;

    $self->log->debug('Starting main section');

    $self->parse_file();

    $self->log->debug('Ending main section');

}

# ----------------------------------------------------------------------
# Private Methods
# ----------------------------------------------------------------------

1;

__END__

=head1 NAME

XAS::Apps::Base::ExtractGlobals - This module will extract globals from a postgres dump file

=head1 SYNOPSIS

 use XAS::Apps::Base::ExtractGlobals;

 my $app = XAS::Apps::Base::ExtractGlobals->new(;
    -throws  => 'pg_extract_global',
    -options => [
        {'file=s'     => ''},
        {'database=s' => ''}
    ]
 );

 exit $app->run();

=head1 DESCRIPTION

This module will extract the global elements from a postgres pg_dumpall file.
This is based on the database name. This data is then suitable to populate
an "empty" database that already has a schema defined. This allows 
you to do selective restores.

=head1 CONFIGURATION

The following parameters are used to configure the module.

=head2 -options

Defines the command line options for this module. 

=over 4

=item B<'files=s'>

Defines the dump file to use.

=item B<'database=s'>

Defines which database to extract data from.

=back

=head1 SEE ALSO

 bin/pg_extract_global.pl

L<XAS|XAS>

=head1 AUTHOR

Kevin L. Esteb, E<lt>kevin@kesteb.usE<gt>

=head1 COPYRIGHT AND LICENSE

Copyright (C) 2012 by Kevin L. Esteb

This library is free software; you can redistribute it and/or modify
it under the same terms as Perl itself, either Perl version 5.8.8 or,
at your option, any later version of Perl 5 you may have available.

=cut
