OTRS-OPM-Installer

 view release on metacpan or  search on metacpan

lib/OTRS/OPM/Installer/Utils/OTRS.pm  view on Meta::CPAN

        %info = (
            name    => $row[0],
            version => $row[1],
        );
    }

    return if !%info;

    return $info{version} if !$param{version};

    my $is_installed = $self->_check_version(
        installed => $info{version},
        requested => $param{version},
    );

    return $is_installed if $is_installed;
    return;
}

sub _check_version {
    my ($self, %param) = @_;

    my @i_parts = split /\./, $param{installed} || 0;
    my @r_parts = split /\./, $param{requested} || 10000000;

    my $installed = sprintf "%03d%03d%03d", map{ $i_parts[$_] && $i_parts[$_] =~ m{\A[0-9]+\z} ? $i_parts[$_] : 0 }( 0 .. 2);
    my $requested = sprintf "%03d%03d%03d", map{ $r_parts[$_] && $r_parts[$_] =~ m{\A[0-9]+\z} ? $r_parts[$_] : 0 }( 0 .. 2);

    return $installed if $installed >= $requested;
    return;
}

sub _get_db {
    my ($self) = @_;

    my $class = $self->obj_env;
    my $path  = module_path $class;
    require $path;

    my $string = $class . '::_get_db';

    $self->$string();
}
 
sub _build_manager {
    my ($self) = @_;

    my $class = $self->obj_env;
    my $path  = module_path $class;
    require $path;

    my $string = $class . '::_build_manager';

    $self->$string();
}
 
sub _find_version {
    my ($self) = @_;

    my $file    = $self->path . '/RELEASE';
    my $content = do { local ( @ARGV, $/ ) = $file; <> };

    my ($version) = $content =~ m{VERSION \s+ = \s+ ([0-9.]+)}xms;
    return $version;
}

sub _build_inc {
    my ($self) = @_;

    return [ map{ $self->path . "/" . $_ }( '', 'Kernel/cpan-lib' ) ];
}

sub BUILDARGS {
    my $class = shift;

    if ( @_ % 2 != 0 ) {
        croak 'Check the parameters for ' . __PACKAGE__ . '. You have to pass a hash.';
    }

    my %args = @_;
    if ( !exists $args{path} ) {
        my $utils = OTRS::OPM::Installer::Utils::Config->new;
        my $cfg   = $utils->rc_config;

        $args{path} = $cfg->{otrs_path} if defined $cfg->{otrs_path};
    }

    return \%args;
}

sub _obj_env {
    my ($self) = @_;

    my ($major) = $self->otrs_version =~ m{\A(\d+)\.};
    if ( $major <= 3 ) {
        return 'OTRS::OPM::Installer::Utils::OTRS::OTRS3';
    }
    else {
        return 'OTRS::OPM::Installer::Utils::OTRS::OTRS4';
    }
}

sub _os_env {
    if ( $ENV{OTRSOPMINSTALLERTEST} ) {
        return 'OTRS::OPM::Installer::Utils::OTRS::Test';
    }
    else {
        return 'OTRS::OPM::Installer::Utils::OTRS::Linux';
    }
}

1;

__END__

=pod

=encoding UTF-8

=head1 NAME



( run in 1.794 second using v1.01-cache-2.11-cpan-b16cb0d3907 )