This commit is contained in:
parent
387f6eaf1a
commit
ef11beb172
@ -1,60 +0,0 @@
|
|||||||
#!/usr/bin/perl
|
|
||||||
#
|
|
||||||
# Merge two kernel configs, eliminating duplicated assignments.
|
|
||||||
# TODO:
|
|
||||||
# support for #include-style directives in config files, to make the
|
|
||||||
# kernel configs more maintainable
|
|
||||||
|
|
||||||
use strict;
|
|
||||||
use warnings;
|
|
||||||
|
|
||||||
# ( { source => <file> name => ... value => ...}, { comment => ...}, ... )
|
|
||||||
my @lines;
|
|
||||||
# references into the @lines array
|
|
||||||
my %variables;
|
|
||||||
|
|
||||||
sub store_var {
|
|
||||||
my ($file, $line, $name, $value) = @_;
|
|
||||||
|
|
||||||
if (exists($variables{$name})) {
|
|
||||||
if ($variables{$name}->{source} eq $file) {
|
|
||||||
print STDERR "$file:$line: warning: $name redefined\n";
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
my $new = {};
|
|
||||||
push(@lines, $new);
|
|
||||||
$variables{$name} = $new;
|
|
||||||
}
|
|
||||||
$variables{$name}->{source} = $file;
|
|
||||||
$variables{$name}->{name} = $name;
|
|
||||||
$variables{$name}->{value} = $value;
|
|
||||||
}
|
|
||||||
|
|
||||||
sub store_comment {
|
|
||||||
my ($comment) = @_;
|
|
||||||
|
|
||||||
push(@lines, { comment => $comment });
|
|
||||||
}
|
|
||||||
|
|
||||||
while (<>) {
|
|
||||||
chomp;
|
|
||||||
if (/^CONFIG_(\w+)=(.*)/) {
|
|
||||||
store_var($ARGV, $., $1, $2);
|
|
||||||
} elsif (/^# CONFIG_(\w+) is not set/) {
|
|
||||||
store_var($ARGV, $., $1, 'n');
|
|
||||||
} elsif (/^$|^#/) {
|
|
||||||
store_comment($_);
|
|
||||||
} else {
|
|
||||||
print STDERR "$ARGV:$.: warning: ignoring unknown line\n";
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
for my $line (@lines) {
|
|
||||||
if (exists($line->{comment})) {
|
|
||||||
print "$line->{comment}\n";
|
|
||||||
} elsif ($line->{value} eq 'n') {
|
|
||||||
print "# CONFIG_$line->{name} is not set\n";
|
|
||||||
} else {
|
|
||||||
print "CONFIG_$line->{name}=$line->{value}\n";
|
|
||||||
}
|
|
||||||
}
|
|
Loading…
Reference in New Issue
Block a user