Test-PostgreSQL
view release on metacpan or search on metacpan
lib/Test/PostgreSQL.pm view on Meta::CPAN
unless (defined $ent) {
die "user nobody does not exist, use uid() to specify a non-root user.";
}
unless ($ent->uid > 0) {
die "user nobody has uid 0; confused and exiting. use uid() to specify a non-root user.";
}
$self->uid($ent->uid);
}
# Ensure base dir is writable by our target uid, if we were running as root
chown $self->uid, -1, $self->base_dir
if defined $self->uid;
if ($self->auto_start) {
$self->setup
if $self->auto_start >= 2;
$self->start;
}
}
method DEMOLISH($in_global_destruction) {
lib/Test/PostgreSQL.pm view on Meta::CPAN
return;
}
method setup() {
# (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} && $ENV{USER} eq 'root') {
chown $self->uid, -1, $self->base_dir
or die "failed to chown dir:" . $self->base_dir . ":$!";
}
my $tmpdir = $self->socket_dir;
if (mkdir $tmpdir) {
if ($self->uid) {
chown $self->uid, -1, $tmpdir
or die "failed to chown dir:$tmpdir:$!";
}
}
# initdb
if (! -d File::Spec->catdir($self->base_dir, 'data')) {
if ( $self->pg_ctl ) {
my @cmd = (
$self->pg_ctl,
'init',
'-s',
'-D', File::Spec->catdir($self->base_dir, 'data'),
( run in 0.559 second using v1.01-cache-2.11-cpan-5511b514fd6 )