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 )