diff options
| -rwxr-xr-x | apkbuild-cpan.in | 31 | 
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/$_");  | 
