37 lines
1015 B
Perl
37 lines
1015 B
Perl
#!/usr/bin/perl
|
|
|
|
use strict;
|
|
use JSON;
|
|
use List::MoreUtils qw(uniq);
|
|
|
|
my $deps = {};
|
|
|
|
foreach my $module (qw(common handler portal manager)) {
|
|
local $/ = undef;
|
|
open my $f, '<', "lemonldap-ng-$module/META.json" or die $!;
|
|
my $content = JSON::from_json(<$f>)->{prereqs};
|
|
close $f;
|
|
foreach my $target (qw(build runtime)) {
|
|
foreach (qw(requires recommends)) {
|
|
@{ $deps->{$target}->{$_} } = uniq(
|
|
@{ $deps->{$target}->{$_} },
|
|
( grep { $_ !~ /^Lemonldap::NG/ } keys %{ $content->{$target}->{$_} } )
|
|
) if ( $content->{$target}->{$_} );
|
|
}
|
|
}
|
|
}
|
|
|
|
print "Step: build:\n";
|
|
print ' '
|
|
. join(
|
|
' ',
|
|
uniq(
|
|
sort ( @{ $deps->{build}->{requires} },
|
|
@{ $deps->{runtime}->{requires} } )
|
|
)
|
|
) . "\n\n";
|
|
|
|
print "Step: runtime:\n";
|
|
print ' * required : ' . join( ' ', sort @{ $deps->{runtime}->{requires} } ) . "\n";
|
|
print ' * recommended: ' . join( ' ', sort @{ $deps->{runtime}->{recommends} } ) . "\n";
|