apkbuild-cpan.in: Avoid processing duplicate modules in parse_deps

This commit is contained in:
Timothy Legge 2020-03-24 23:51:11 +00:00
parent 8c62020a34
commit e448c9a452
1 changed files with 20 additions and 13 deletions

View File

@ -126,24 +126,31 @@ sub parse_deps {
my $distfiles = {};
my $response;
my $deps = "";
my $reqmodlist = "";
#Get list of unique required modules from all parameters
foreach $reqs (@_) {
for my $module ($reqs->required_modules) {
if (Module::CoreList->is_core($module)) {
my $perlver = Module::CoreList->first_release($module);
say "$module is part of core perl since $perlver.";
next;
}
next if $module eq 'perl';
# map module name to package name
$response = $ua->get("https://fastapi.metacpan.org/module/$module");
$response->is_success or die $response->status_line;
my $moddata = $json->decode($response->decoded_content);
$moddata->{error} and die "Error trying to locate $module: $moddata->{error}\n";
$distfiles->{$module} = $moddata->{distribution};
$reqmodlist .= "$module " unless $reqmodlist =~ m/$module/;
}
}
# Check add the require module to $dep if not part of core perl
foreach my $module (split " ", $reqmodlist) {
next if $module eq 'perl';
if (Module::CoreList->is_core($module)) {
my $perlver = Module::CoreList->first_release($module);
say "$module is part of core perl since $perlver.";
next;
}
# map module name to package name
$response = $ua->get("https://fastapi.metacpan.org/module/$module");
$response->is_success or die $response->status_line;
my $moddata = $json->decode($response->decoded_content);
$moddata->{error} and die "Error trying to locate $module: $moddata->{error}\n";
$distfiles->{$module} = $moddata->{distribution};
}
# map package names to alpine packages
foreach ( keys %{ $distfiles } ) {
$response = $ua->get("https://fastapi.metacpan.org/module/$_");