summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rwxr-xr-xapkbuild-cpan.in31
1 files changed, 19 insertions, 12 deletions
diff --git a/apkbuild-cpan.in b/apkbuild-cpan.in
index 254ebb2..9d4f546 100755
--- a/apkbuild-cpan.in
+++ b/apkbuild-cpan.in
@@ -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';
+ $reqmodlist .= "$module " unless $reqmodlist =~ m/$module/;
+ }
+ }
- # 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
foreach ( keys %{ $distfiles } ) {
$response = $ua->get("https://fastapi.metacpan.org/module/$_");