summaryrefslogtreecommitdiffstats
path: root/dkms-modules-info/merge_dkms_info.pl
blob: c5f394c9d78a622367bb0d1b6b3ff372225b85e5 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
#!/usr/bin/perl

use MDK::Common;

my $prefix = "dkms-modules";

my %fields;
my %filters = (
    alias => sub {
        my ($module, $values) = @_;
        map { "alias $_ $module\n" } sort(uniq(@$values));
    },
    description => sub {
        my ($module, $values) = @_;
        my $desc = find { $_} @$values;
        if_($desc, "$module\t$desc\n");
    },
);

foreach my $kver (grep { $_ ne ".svn" && -d $_ } all(".")) {
    foreach my $file (all($kver)) {
        my ($module, $type) = $file =~ /^(.+)\.(.+?)$/ or next;
        push @{$fields{$type}{$module}}, chomp_(cat_($kver . '/' . $file));
    }
}

foreach my $type (keys %filters) {
    output("$prefix.$type", map { $filters{$type}->($_, $fields{$type}{$_}) } sort(keys(%{$fields{$type}})));
}