dl_cleanup: Add regex for foo_1_2_3
[openwrt/staging/yousong.git] / scripts / kconfig.pl
index 181b35ad47271b6f90c4af27d39e181941eeae05..c76e2978b2092e28b4bb5606b82a37ea87f664a2 100755 (executable)
@@ -9,7 +9,8 @@
 use warnings;
 use strict;
 
-my @arg = @ARGV;
+my @arg;
+my $PREFIX = "CONFIG_";
 
 sub load_config($) {
        my $file = shift;
@@ -18,16 +19,16 @@ sub load_config($) {
        open FILE, "$file" or die "can't open file";
        while (<FILE>) {
                chomp;
-               /^CONFIG_(.+?)=(.+)/ and do {
+               /^$PREFIX(.+?)=(.+)/ and do {
                        $config{$1} = $2;
                        next;
                };
-               /^# CONFIG_(.+?) is not set/ and do {
+               /^# $PREFIX(.+?) is not set/ and do {
                        $config{$1} = "#undef";
                        next;
                };
                /^#/ and next;
-               /^(.+)$/ and print "WARNING: can't parse line: $1\n";
+               /^(.+)$/ and warn "WARNING: can't parse line: $1\n";
        }
        return \%config;
 }
@@ -93,10 +94,10 @@ sub config_sub($$) {
 sub print_cfgline($$) {
        my $name = shift;
        my $val = shift;
-       if ($val eq '#undef') {
-               print "# CONFIG_$name is not set\n";
+       if ($val eq '#undef' or $val eq 'n') {
+               print "# $PREFIX$name is not set\n";
        } else {
-               print "CONFIG_$name=$val\n";
+               print "$PREFIX$name=$val\n";
        }
 }
 
@@ -143,6 +144,18 @@ sub parse_expr($) {
        }
 }
 
+while (@ARGV > 0 and $ARGV[0] =~ /^-\w+$/) {
+       my $cmd = shift @ARGV;
+       if ($cmd =~ /^-n$/) {
+               $PREFIX = "";
+       } elsif ($cmd =~ /^-p$/) {
+               $PREFIX = shift @ARGV;
+       } else {
+               die "Invalid option: $cmd\n";
+       }
+}
+@arg = @ARGV;
+
 my $pos = 0;
 dump_config(parse_expr(\$pos));
 die "Parse error" if ($arg[$pos]);