our
$Backends
;
sub
import
{
my
$class
=
shift
;
my
$path
=
shift
;
my
$caller
=
caller
;
my
$temprc
=
join
(
"/"
,
$path
,
".ladybugrc"
);
return
__setenv(
$caller
,
$path
)
if
-e
$temprc
;
if
( !-d
$path
) {
die
"$path is not a directory (weird)"
;
}
elsif
( !-w
$path
) {
die
"$path is not writable (can't make a temp .ladybugrc)"
;
}
if
( !
open
( OPRC,
">"
,
$temprc
) ) {
my
$reason
= $! ||
"Unusable filesystem ($temprc unwritable)"
;
die
(
$reason
);
}
print
OPRC
qq|
---
dbPass: ~
dbHost: localhost
dbPort: ~
dbUser: ladybug
memcachedHosts:
- 127.0.0.1:31337
rcsBindir: /usr/bin
rcsDir: RCS
scratchRoot: $path/scratch
sqliteRoot: $path/sqlite
yamlRoot: $path/yaml
yamlHost: ~
|
;
close
(OPRC);
__setenv(
$caller
,
$path
);
$Backends
= Devel::Ladybug::Hash->new;
$Backends
->{
"SQLite"
} =
Devel::Ladybug::Persistence::__supportsSQLite();
$Backends
->{
"MySQL"
} = Devel::Ladybug::Persistence::__supportsMySQL();
if
( !
$Backends
->{
"MySQL"
} ) {
print
"----------------------------------------------------------\n"
;
print
"If you would like to enable MySQL tests for Devel::Ladybug, please remedy\n"
;
print
"the issue shown in the diagnostic message below. You will need\n"
;
print
"to create a local MySQL DB named 'ladybug', and grant access, ie:\n"
;
print
"\n"
;
print
"> mysql -u root -p\n"
;
print
"> create database ladybug;\n"
;
print
"> grant all on ladybug.* to ladybug\@localhost;\n"
;
if
($@) {
my
$error
= $@;
chomp
$error
;
print
"\n"
;
print
"Diagnostic message:\n"
;
print
$error
;
print
"\n"
;
}
}
$Backends
->{
"PostgreSQL"
} =
Devel::Ladybug::Persistence::__supportsPostgreSQL();
if
( !
$Backends
->{
"PostgreSQL"
} ) {
print
"----------------------------------------------------------\n"
;
print
"If you would like to enable pgsql tests for Devel::Ladybug, please remedy\n"
;
print
"the issue shown in the diagnostic message below. You will need\n"
;
print
"to create a local pgsql DB and user named 'ladybug' + grant access.\n"
;
print
"\n"
;
if
($@) {
my
$error
= $@;
chomp
$error
;
print
"\n"
;
print
"Diagnostic message:\n"
;
print
$error
;
print
"\n"
;
}
}
$Backends
->{
"Memcached"
} =
scalar
(
keys
%{
$Devel::Ladybug::Persistence::memd
->server_versions } );
return
1;
}
sub
__setenv {
my
$caller
=
shift
;
my
$path
=
shift
;
$ENV
{LADYBUG_HOME} =
$path
;
eval
q| use Devel::Ladybug qw(:all) |
;
for
(
@Devel::Ladybug::EXPORT
) {
do
{
no
warnings
"once"
;
no
strict
"refs"
;
*{
"$caller\::$_"
} = *{
"Devel::Ladybug::$_"
};
};
}
return
1;
}
1;