OPM-Installer

 view release on metacpan or  search on metacpan

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

    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) = @_;

    push @INC, @{ $self->inc };

    my $object;
    eval {
        require Kernel::System::ObjectManager;
        $Kernel::OM = Kernel::System::ObjectManager->new;

        $object = $Kernel::OM->Get('Kernel::System::DB');
    } or die $@;

    $object;
}
 
sub _build_manager {
    my ($self) = @_;

    push @INC, @{ $self->inc };

    my $manager;
    eval {
        require Kernel::System::ObjectManager;
        $Kernel::OM = Kernel::System::ObjectManager->new;

        $manager = $Kernel::OM->Get('Kernel::System::Package');
    } or die $@;

    $manager;
}
 
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 = OPM::Installer::Utils::Config->new;
        my $cfg   = $utils->rc_config;

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

    return \%args;
}

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

1;

__END__

=pod

=encoding UTF-8

=head1 NAME

OPM::Installer::Utils::TS - class that provides helper functionality regarding the addon installation

=head1 VERSION

version 1.0.1

=begin Pod::Coverage




=end Pod::Coverage



( run in 0.763 second using v1.01-cache-2.11-cpan-ceb78f64989 )