blob: d00e0028f5583f6bb713c0ac47ba4aee6529bf6b (
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
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
#!/usr/bin/perl
use MDK::Common;
listlength(@ARGV) == 2 or die "usage: $0 /path/to/etc/pcmcia/config /path/to/modules.dep\n";
my ($pcmcia_config, $modules_dep) = @ARGV;
my @ignore_modules_in_deps = qw(pcmcia_core ds);
my @conf_contents = cat_($pcmcia_config);
die "uhm, problem, <$pcmcia_config> seems short in lines\n" if listlength(@conf_contents) < 10;
foreach (cat_($modules_dep)) {
/^(\S+): (.*)/ and $deps{$1} = [ split ' ', $2 ] or die "could not understand `$_' in <$modules_dep>\n";
}
foreach my $confline (@conf_contents) {
$confline =~ /class.*\s+module\s+(.*)/ or next;
my @modules = map { /"([^"]+)"(.*)/ && [ $1, $2 ] } split ',', $1;
$_->[0] =~ s|.*/([^/]+)$|$1|g foreach @modules; #- remove directories since we don't support that during install
my @deps = grep { !member($_, @ignore_modules_in_deps, map { $_->[0] } @modules) } map { @{$deps{$_->[0]}} } @modules;
my $new_modz = join ', ', (map { "\"$_\"" } @deps), (map { "\"$_->[0]\"$_->[1]" } @modules);
$confline =~ s/(class.*\s+module\s+).*/$1$new_modz/;
}
output($pcmcia_config, @conf_contents);
|