Mail-Toaster
view release on metacpan or search on metacpan
lib/Mail/Toaster/Mysql.pm view on Meta::CPAN
my $dir = $self->conf->{'install_mysql_dir'};
if ( $dir && $dir ne "/var/db/mysql" ) { $flags .= ",DB_DIR=$dir"; };
my $check;
my $ver = $self->conf->{install_mysql};
if ( $ver =~ /^3|323$/ ) { $dir = "323"; $check = "3.23"; }
elsif ( $ver =~ /^4|40$/ ) { $dir = "40"; $check = "4.0"; }
elsif ( $ver =~ /^41|4.1$/ ) { $dir = "41"; $check = "4.1"; }
elsif ( $ver =~ /^50|5.0$/ ) { $dir = "50"; $check = "5"; }
elsif ( $ver =~ /^51|5.1$/ ) { $dir = "51"; $check = "5"; }
elsif ( $ver =~ /^55|5.5$/ ) { $dir = "55"; $check = "5"; }
else { $dir = "51"; $check = "5"; }
@ports = 'client';
push @ports, 'server' if $self->conf->{install_mysqld};
foreach ( @ports ) {
$self->freebsd->install_port( "mysql$dir-$_",
check => "mysql-$_-$check",
flags => $flags,
);
};
return $self->error( "MySQL install FAILED" )
if !$self->freebsd->is_port_installed( "mysql-client" );
if ( ! $self->conf->{install_mysqld} ) {
$self->audit( "installing MySQL client, ok" );
return $self->install_freebsd_extras;
};
return $self->error( "MySQL install FAILED" )
if !$self->freebsd->is_port_installed( "mysql-server" );
$self->audit( "installing MySQL client and server, ok" );
return $self->install_freebsd_extras;
};
sub is_newer {
my ( $self, $min, $cur ) = @_;
$min =~ /^([0-9]+)\.([0-9]{1,})\.([0-9]{1,})$/;
my @mins = ( $1, $2, $3 );
$cur =~ /^([0-9]+)\.([0-9]{1,})\.([0-9]{1,})$/;
my @curs = ( $1, $2, $3 );
if ( $curs[0] > $mins[0] ) { return 1; }
if ( $curs[1] > $mins[1] ) { return 1; }
if ( $curs[2] > $mins[2] ) { return 1; }
return 0;
}
sub parse_dot_file {
my ( $self, $file, $start, $verbose ) = @_;
my ($homedir) = ( getpwuid($REAL_USER_ID) )[7];
my $dotfile = "$homedir/$file";
return if ! -e $dotfile;
if ( !-r $dotfile ) {
carp "WARNING: parse_dot_file: can't read $dotfile!\n";
return 0;
}
my %array;
my $gotit = 0;
print "parse_dot_file: $dotfile\n" if $verbose;
foreach ( $self->util->file_read( $dotfile, verbose=>$verbose ) ) {
next if /^#/;
my $line = $_;
chomp $line;
if ($gotit) {
if ( $line =~ /^\[/ ) { last }
print "2. $line\n" if $verbose;
$line =~ /(\w+)\s*=\s*(.*)\s*$/;
$array{$1} = $2 if $1;
}
else {
print "1. $line\n" if $verbose;
if ( $line eq $start ) {
$gotit = 1;
next;
}
}
}
if ($verbose) {
foreach my $key ( keys %array ) {
print "hash: $key\t=$array{$key}\n";
}
}
return \%array;
}
sub phpmyadmin_install {
my ( $self ) = @_;
if ( ! $self->conf->{'install_phpmyadmin'} ) {
print "phpmyadmin: install is disabled. Enable install_phpmyadmin in "
. "toaster-watcher.conf and try again.\n";
return;
}
my $dir;
if ( $OSNAME eq "freebsd" ) {
$self->freebsd->install_port( "phpmyadmin", check => "phpMyAdmin");
$dir = "/usr/local/www/data/phpMyAdmin";
# the port moved the install location
unless ( -d $dir ) { $dir = "/usr/local/www/phpMyAdmin"; }
( run in 1.954 second using v1.01-cache-2.11-cpan-39bf76dae61 )