lemonldap-ng/scripts/dependencies-list.pl

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";