The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.
use strict;
use ExtUtils::MakeMaker;

# Prompt for the options.
eval { require Config::Tiny };
if ( $@ ) {
    print "\nConfig::Tiny is required in order to configure test database.\n";
    print "If you wish to run this module's tests, please install\n";
    print "Config::Tiny and re-run 'perl Makefile.PL'\n\n";

    # Ensure that no config file exists - as this is our flag for the tests.
    unlink( "test.conf" ); # don't care if it's not there
} else {
    print "\nPlease enter details of a postgres database to use for testing.";
    print qq(

          *********************************************************
          *********************************************************
          ****  WARNING: These tests are destructive.  Do not  ****
          ****  run them on a database containing live data.   ****
          *********************************************************
          *********************************************************

    );
    print "To skip the tests, accept 'undef' for the database name.\n";
    my ($dbname, $dbuser, $dbpass, $dbhost, $dbport);
    $dbname = prompt "\nDatabase name for testing: ", "undef";
    $dbname = "" unless ($dbname and $dbname ne "undef");

    if ( $dbname ) {
        $dbuser = prompt "Database user: ", "undef";
        $dbuser = "" unless ($dbuser and $dbuser ne "undef");
        $dbpass = prompt "Database password: ", "undef";
        $dbpass = "" unless ($dbpass and $dbpass ne "undef");
        $dbhost = prompt "Database host (if needed): ", "undef";
        $dbhost = "" unless ($dbhost and $dbhost ne "undef");
        $dbport = prompt "Port number (if needed): ", "undef";
        $dbport = "" unless ($dbport and $dbport ne "undef");

        my $config = Config::Tiny->new;
        $config->{_} = { dbname => $dbname,
                         dbuser => $dbuser,
                         dbpass => $dbpass,
                         dbhost => $dbhost,
                         dbport => $dbport,
                       };
        $config->write( "test.conf" );
    } else {
        # Ensure that no config file exists - as this is our flag for the tests
        unlink( "test.conf" ); # don't care if it's not there
    }
}

WriteMakefile(
    'NAME'           => 'Search::InvertedIndex::DB::Pg',
    'VERSION_FROM'   => 'lib/Search/InvertedIndex/DB/Pg.pm',
    'PREREQ_PM'      => {
                          'Carp' => 0,
                          'DBD::Pg' => 0,
                          'DBI' => 0,
                          'Search::InvertedIndex' => 0,
                        },
);