App-cpan2arch

 view release on metacpan or  search on metacpan

lib/App/cpan2arch/CheckPackages.pm  view on Meta::CPAN

    {
        my $OK      = 200;
        my $get_err = "$prog: failed to request $url\n";

        $res = do {
            try {
                my %env = $self->env;
                local $ENV{MUAC_NOCACHE} = true if $env{cache_ignore};

                $_mua_arch->get($url)->result;
            }
            catch ($e) {
                warn $e;
                undef;
            }
        };

        if ( !defined $res ) {
            warn $get_err;
            return 1;
        }

        if ( $res->code != $OK ) {
            warn $res->body;
            warn $get_err;

            return 1;
        }
    }

    # Decode JSON
    my $json = do {
        try {
            $res->json;
        }
        catch ($e) {
            warn $e;
            undef;
        }
    };

    if ( !defined $json ) {
        warn "$prog: failed to decode $url\n";
        return 1;
    }

    $self->_pdbg("\n");

    return $json;
}

# Get a list of core modules from specific Perl version.
method _get_corelist ($ver)
{
    $self->_psub;

    my $prog = $self->prog;

    # NOTE:
    #   Ideally, M::CoreList should always support the current perl pkg version,
    #   but its min required version would have to be kept updated, so just fallback
    #   to the current perl version if perl pkg version is not found in M::CoreList.
    #   This might lead to the generated PKGBUILD miss core modules (Arch users
    #   will have latest perl anyways).
    require Module::CoreList;

    my $perl_pkg_ver = do {
        try {
            version->parse($ver)->numify;
        }
        catch ($e) {
            warn $e;
            warn "$prog: failed to parse $ver version\n";

            return 1;
        }
    };

    my $perl_cur_ver = $];

    if ( $perl_pkg_ver > $perl_cur_ver ) {
        $self->_pdbg("perl package version ($perl_pkg_ver) is newer than the current perl version ($perl_cur_ver)\n");
    }

    my $core_modules = Module::CoreList->find_version($perl_pkg_ver);

    # Fallback
    $core_modules = Module::CoreList->find_version($perl_cur_ver)
      unless defined $core_modules;

    #$self->_pdump('$core_modules', $core_modules, "\n");

    if ( !defined $core_modules ) {
        warn "$prog: failed to get Perl core modules list\n";
        return 1;
    }

    # Exclude core libs that MetaCPAN API cannot fetch.
    {
        my @EXCLUDED = (
            qw<
                Unicode
                unicore::Name
                meta_notation
            >
        );

        delete $core_modules->{$_} foreach (@EXCLUDED);
    }

    return $core_modules;
}

# Format/convert datetime to YYYY-MMM-DD.
sub _fmt_date ( $date, $repo )
{
    return undef unless defined $date;

    require Time::Piece;

    return $repo eq 'official'



( run in 0.981 second using v1.01-cache-2.11-cpan-bbb979687b5 )