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 )