diff options
author | Tatsuhiko Miyagawa <miyagawa@bulknews.net> | 2018-04-28 08:28:06 -0700 |
---|---|---|
committer | Tatsuhiko Miyagawa <miyagawa@bulknews.net> | 2018-04-28 08:28:06 -0700 |
commit | b6ca562d2f172250f91f322cbd7f42a0f43b4ea8 (patch) | |
tree | 730ed6963dc511d35d6c72c4569ef2e8da78a734 | |
parent | 96130081351d4696352b54dd3cf6e966a9525dc5 (diff) | |
download | carton-b6ca562d2f172250f91f322cbd7f42a0f43b4ea8.tar.gz |
fix Carton runtime dependency for fatpack. Fixes #571
-rw-r--r-- | lib/Carton/Packer.pm | 21 |
1 files changed, 15 insertions, 6 deletions
diff --git a/lib/Carton/Packer.pm b/lib/Carton/Packer.pm index ba7ff4b..b7d5dce 100644 --- a/lib/Carton/Packer.pm +++ b/lib/Carton/Packer.pm @@ -56,10 +56,21 @@ sub do_fatpack { } sub required_modules { - my($self, $packer) = @_; + my $self = shift; - my $meta = $self->installed_meta('Carton') - or die "Couldn't find install metadata for Carton"; + my %requirements; + for my $dist (qw( Carton Menlo-Legacy Menlo )) { + $requirements{$_} = 1 for $self->required_modules_for($dist); + } + + [ keys %requirements ]; +} + +sub required_modules_for { + my($self, $dist) = @_; + + my $meta = $self->installed_meta($dist) + or die "Couldn't find install metadata for $dist"; my %excludes = ( perl => 1, @@ -67,10 +78,8 @@ sub required_modules { 'Module::Build' => 1, ); - my @requirements = grep !$excludes{$_}, + grep !$excludes{$_}, $meta->effective_prereqs->requirements_for('runtime', 'requires')->required_modules; - - return \@requirements; } sub installed_meta { |