scripts/metadata.pl: add support for ignoring source packages when generating metadata
authorFelix Fietkau <nbd@openwrt.org>
Sun, 10 Jan 2016 16:35:16 +0000 (16:35 +0000)
committerFelix Fietkau <nbd@openwrt.org>
Sun, 10 Jan 2016 16:35:16 +0000 (16:35 +0000)
Signed-off-by: Felix Fietkau <nbd@openwrt.org>
SVN-Revision: 48170

scripts/metadata.pl
scripts/metadata.pm

index 54341c4..48b1b7a 100755 (executable)
@@ -3,6 +3,7 @@ use FindBin;
 use lib "$FindBin::Bin";
 use strict;
 use metadata;
+use Getopt::Long;
 
 my %board;
 
@@ -871,6 +872,7 @@ sub gen_version_filtered_list() {
 }
 
 sub parse_command() {
+       GetOptions("ignore=s", \@ignore);
        my $cmd = shift @ARGV;
        for ($cmd) {
                /^target_config$/ and return gen_target_config();
@@ -895,6 +897,8 @@ Available Commands:
        $0 package_licensefull [file]           Package license information (full list)
        $0 version_filter [patchver] [list...]  Filter list of version tagged strings
 
+Options:
+       --ignore <name>                         Ignore the source package <name>
 EOF
 }
 
index 09273df..0ed3524 100644 (file)
@@ -2,7 +2,7 @@ package metadata;
 use base 'Exporter';
 use strict;
 use warnings;
-our @EXPORT = qw(%package %srcpackage %category %subdir %preconfig %features %overrides clear_packages parse_package_metadata parse_target_metadata get_multiline);
+our @EXPORT = qw(%package %srcpackage %category %subdir %preconfig %features %overrides clear_packages parse_package_metadata parse_target_metadata get_multiline @ignore);
 
 our %package;
 our %preconfig;
@@ -11,6 +11,7 @@ our %category;
 our %subdir;
 our %features;
 our %overrides;
+our @ignore;
 
 sub get_multiline {
        my $fh = shift;
@@ -130,6 +131,7 @@ sub parse_package_metadata($) {
        my $subdir;
        my $src;
        my $override;
+       my %ignore = map { $_ => 1 } @ignore;
 
        open FILE, "<$file" or do {
                warn "Cannot open '$file': $!\n";
@@ -152,6 +154,7 @@ sub parse_package_metadata($) {
                        $overrides{$src} = 1;
                };
                next unless $src;
+               next if $ignore{$src};
                /^Package:\s*(.+?)\s*$/ and do {
                        undef $feature;
                        $pkg = {};