#!/usr/bin/perl
use 5.006;
use strict;
use warnings;
use lib 'lib';
use DBIx::Migration::Directories::Build;
my $build = DBIx::Migration::Directories::Build->new(
module_name => 'DBIx::Migration::Directories',
license => 'perl',
requires => {
'DBIx::Transaction' => '0.005',
'Pod::Usage' => '1',
'DBI' => '1.41',
'File::Basename::Object' => '0.01',
},
build_requires => {
'Data::Dumper' => '2.10',
'Module::Build' => '0.27_03',
},
create_makefile_pl => 'passthrough',
auto_features => {
Pg => {
description => 'PostgreSQL Support',
requires => {
'DBD::Pg' => '1.31'
}
},
mysql => {
description => 'MySQL Support',
requires => {
'DBD::mysql' => '1.1211'
}
},
SQLite2 => {
description => 'SQLite2 Support',
required => {
'DBD::SQLite2' => '0.33',
}
},
},
script_files => [ 'bin/migrate-database-schema' ],
add_to_cleanup => [ 'test_db' ],
);
$build->autotest_with({
'DBD::SQLite2' => '0.33'
});
my %test_opts = (
Pg => '',
mysql => '',
);
if($build->feature('Pg')) {
$test_opts{Pg} =
$build->y_n("Do you want to run the PostgreSQL tests? (y/n)", "n");
}
if($test_opts{Pg}) {
my $user = scalar getpwuid($<);
$test_opts{Pg_host} = $build->prompt(
" Postgres server hostname (leave blank to use local socket):"
);
if($test_opts{Pg_host}) {
$test_opts{Pg_port} = $build->prompt(
" Postgres server port (leave blank to use default):"
);
}
$test_opts{Pg_db} = $build->prompt(" Name of database to use", $user);
$test_opts{Pg_user} = $build->prompt(
" User to connect to the database as", $user
);
$test_opts{Pg_pass} = $build->prompt(
" Password to connect to the database with:"
);
}
if($build->feature('mysql')) {
$test_opts{mysql} = $build->y_n(
"Do you want to run the MySQL tests? (y/n)", "n"
);
}
if($test_opts{mysql}) {
my $user = scalar getpwuid($<);
$test_opts{mysql_host} = $build->prompt(
" MySQL server hostname (leave blank to use local socket):"
);
if($test_opts{mysql_host}) {
$test_opts{mysql_port} = $build->prompt(
" MySQL server port (leave blank to use default):"
);
}
$test_opts{mysql_db} = $build->prompt(" Name of database to use", 'test');
$test_opts{mysql_user} = $build->prompt(
" User to connect to the database as", $user
);
$test_opts{mysql_pass} = $build->prompt(
" Password to connect to the database with:"
);
}
if($build->feature('SQLite2')) {
$test_opts{SQLite2} = $build->y_n(
"Do you want to run the SQLite2 tests? (y/n)", "y"
);
}
$build->create_build_script;
use Data::Dumper;
my $tfh;
open($tfh, '>', '_build/test_opts.ph') or die "saving test options failed: $!";
print $tfh (Data::Dumper->Dump([\%test_opts], ['*test_opts']));
close($tfh);