scripts/feeds: display "X" as revision of uninitialized feeds
[openwrt/staging/wigyori.git] / scripts / metadata.pm
index 3b756216a5ee7fac5ba31497f75ff5741d1d4998..8334f26d3179a0eb83aa1aa976778ff5828faf45 100644 (file)
@@ -87,17 +87,16 @@ sub parse_target_metadata($) {
                                priority => 999,
                                packages => []
                        };
+                       $1 =~ /^DEVICE_/ and $target->{has_devices} = 1;
                        push @{$target->{profiles}}, $profile;
                };
-               /^Target-Profile-Name:\s*(.+)\s*$/ and do {
+               /^Target-Profile-Name:\s*(.+)\s*$/ and $profile->{name} = $1;
+               /^Target-Profile-Priority:\s*(\d+)\s*$/ and do {
+                       $profile->{priority} = $1;
                        $target->{sort} = 1;
-                       $profile->{name} = $1;
                };
-               /^Target-Profile-Priority:\s*(\d+)\s*$/ and $profile->{priority} = $1;
                /^Target-Profile-Packages:\s*(.*)\s*$/ and $profile->{packages} = [ split(/\s+/, $1) ];
                /^Target-Profile-Description:\s*(.*)\s*/ and $profile->{desc} = get_multiline(*FILE);
-               /^Target-Profile-Config:/ and $profile->{config} = get_multiline(*FILE, "\t");
-               /^Target-Profile-Kconfig:/ and $profile->{kconfig} = 1;
        }
        close FILE;
        foreach my $target (@target) {
@@ -112,6 +111,11 @@ sub parse_target_metadata($) {
                                packages => []
                        }
                ];
+
+               $target->{sort} and @{$target->{profiles}} = sort {
+                       $a->{priority} <=> $b->{priority} or
+                       $a->{name} cmp $b->{name};
+               } @{$target->{profiles}};
        }
        return @target;
 }
@@ -158,10 +162,10 @@ sub parse_package_metadata($) {
                        $overrides{$src} = 1;
                };
                next unless $src;
-               next if $ignore{$src};
                /^Package:\s*(.+?)\s*$/ and do {
                        undef $feature;
                        $pkg = {};
+                       $pkg->{ignore} = $ignore{$src};
                        $pkg->{src} = $src;
                        $pkg->{makefile} = $makefile;
                        $pkg->{name} = $1;
@@ -185,7 +189,7 @@ sub parse_package_metadata($) {
                $feature and do {
                        /^Target-Name:\s*(.+?)\s*$/ and do {
                                $features{$1} or $features{$1} = [];
-                               push @{$features{$1}}, $feature;
+                               push @{$features{$1}}, $feature unless $ignore{$src};
                        };
                        /^Target-Title:\s*(.+?)\s*$/ and $feature->{target_title} = $1;
                        /^Feature-Priority:\s*(\d+)\s*$/ and $feature->{priority} = $1;
@@ -252,7 +256,7 @@ sub parse_package_metadata($) {
                                $preconfig = {
                                        id => $1
                                };
-                               $preconfig{$pkgname}->{$1} = $preconfig;
+                               $preconfig{$pkgname}->{$1} = $preconfig unless $ignore{$src};
                        }
                };
                /^Preconfig-Type:\s*(.*?)\s*$/ and $preconfig->{type} = $1;