Test-Postgresql58
view release on metacpan or search on metacpan
lib/Test/Postgresql58.pm view on Meta::CPAN
}
if (defined $self->base_dir) {
$self->base_dir(cwd . '/' . $self->base_dir)
if $self->base_dir !~ m|^/|;
} else {
$self->base_dir(
tempdir(
CLEANUP => $ENV{TEST_POSTGRESQL_PRESERVE} ? undef : 1,
),
);
chown $self->uid, -1, $self->base_dir
if defined $self->uid;
}
if (! defined $self->initdb) {
my $prog = _find_program('initdb')
or return;
$self->initdb($prog);
}
if (! defined $self->postmaster) {
my $prog = _find_program('postmaster')
or return;
lib/Test/Postgresql58.pm view on Meta::CPAN
return;
}
sub setup {
my $self = shift;
# (re)create directory structure
mkdir $self->base_dir;
chmod 0755, $self->base_dir
or die "failed to chmod 0755 dir:" . $self->base_dir . ":$!";
if ($ENV{USER} eq 'root') {
chown $self->uid, -1, $self->base_dir
or die "failed to chown dir:" . $self->base_dir . ":$!";
}
if (mkdir $self->base_dir . '/tmp') {
if ($self->uid) {
chown $self->uid, -1, $self->base_dir . '/tmp'
or die "failed to chown dir:" . $self->base_dir . "/tmp:$!";
}
}
# initdb
if (! -d $self->base_dir . '/data') {
pipe my $rfh, my $wfh
or die "failed to create pipe:$!";
my $pid = fork;
die "fork failed:$!"
unless defined $pid;
if ($pid == 0) {
( run in 0.409 second using v1.01-cache-2.11-cpan-5511b514fd6 )