diff --git a/scripts/metadata.pl b/scripts/metadata.pl index 54341c458f..48b1b7a960 100755 --- a/scripts/metadata.pl +++ b/scripts/metadata.pl @@ -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 Ignore the source package EOF } diff --git a/scripts/metadata.pm b/scripts/metadata.pm index 09273df3ad..0ed3524e81 100644 --- a/scripts/metadata.pm +++ b/scripts/metadata.pm @@ -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 = {};