apkbuild-cpan.in: Avoid processing duplicate modules in parse_deps
This commit is contained in:
parent
8c62020a34
commit
e448c9a452
|
@ -126,24 +126,31 @@ sub parse_deps {
|
||||||
my $distfiles = {};
|
my $distfiles = {};
|
||||||
my $response;
|
my $response;
|
||||||
my $deps = "";
|
my $deps = "";
|
||||||
|
my $reqmodlist = "";
|
||||||
|
|
||||||
|
#Get list of unique required modules from all parameters
|
||||||
foreach $reqs (@_) {
|
foreach $reqs (@_) {
|
||||||
for my $module ($reqs->required_modules) {
|
for my $module ($reqs->required_modules) {
|
||||||
if (Module::CoreList->is_core($module)) {
|
$reqmodlist .= "$module " unless $reqmodlist =~ m/$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};
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
# 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
|
# map package names to alpine packages
|
||||||
foreach ( keys %{ $distfiles } ) {
|
foreach ( keys %{ $distfiles } ) {
|
||||||
$response = $ua->get("https://fastapi.metacpan.org/module/$_");
|
$response = $ua->get("https://fastapi.metacpan.org/module/$_");
|
||||||
|
|
Loading…
Reference in New Issue