Changeset 44777


Ignore:
Timestamp:
2015-03-15T12:07:44+01:00 (3 years ago)
Author:
nbd
Message:

scripts/feeds: add support for searching for targets

Signed-off-by: Felix Fietkau <nbd@…>

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/scripts/feeds

    r44775 r44777  
    2929my %build_packages; 
    3030my %installed; 
     31my %installed_targets; 
    3132my %feed_cache; 
    3233 
    3334my $feed_package = {}; 
    3435my $feed_src = {}; 
     36my $feed_target = {}; 
    3537 
    3638sub parse_config() { 
     
    180182} 
    181183 
     184sub get_targets($) { 
     185        my $file = shift; 
     186        my @target = parse_target_metadata($file); 
     187        my %target; 
     188        foreach my $target (@target) { 
     189                $target{$target->{id}} = $target; 
     190        } 
     191        return %target 
     192} 
     193 
    182194sub get_feed($) { 
    183195        my $feed = shift; 
     
    192204                }; 
    193205                parse_package_metadata($file) or return; 
    194                 $feed_cache{$feed} = [ { %package }, { %srcpackage } ]; 
     206                my %target = get_targets("./feeds/$feed.targetindex"); 
     207 
     208                $feed_cache{$feed} = [ { %package }, { %srcpackage }, { %target } ]; 
    195209        } 
    196210 
    197211        $feed_package = $feed_cache{$feed}->[0]; 
    198212        $feed_src = $feed_cache{$feed}->[1]; 
     213        $feed_target = $feed_cache{$feed}->[2]; 
    199214        return $feed_cache{$feed}->[0]; 
    200215} 
     
    205220        parse_package_metadata("./tmp/.packageinfo"); 
    206221        %installed = %package; 
     222        %installed_targets = get_targets("./tmp/.targetinfo"); 
    207223} 
    208224 
     
    235251                }; 
    236252        } 
     253 
     254        foreach my $name (sort { lc($a) cmp lc($b) } keys %$feed_target) { 
     255                my $target = $feed_target->{$name}; 
     256                my $targetmatch = 1; 
     257 
     258                foreach my $substr (@substr) { 
     259                        my $match; 
     260                        foreach my $key (qw(id name description)) { 
     261                                $target->{$key} and $substr and $target->{$key} =~ m/$substr/i and $match = 1; 
     262                        } 
     263                        $match or undef $targetmatch; 
     264                }; 
     265                $targetmatch and do { 
     266                        $display or do { 
     267                                print "Search results in feed '$feed':\n"; 
     268                                $display = 1; 
     269                        }; 
     270                        printf "TARGET: \%-17s\t\%s\n", $target->{id}, $target->{name}; 
     271                }; 
     272        } 
    237273        return 0; 
    238274} 
     
    256292                if($pkg->{name}) { 
    257293                        printf "\%-32s\t\%s\n", $pkg->{name}, $pkg->{title}; 
     294                } 
     295        } 
     296 
     297        foreach my $name (sort { lc($a) cmp lc($b) } keys %$feed_target) { 
     298                my $target = $feed_target->{$name}; 
     299                if($target->{name}) { 
     300                        printf "TARGET: \%-24s\t\%s\n", $target->{id}, $target->{name}; 
    258301                } 
    259302        } 
Note: See TracChangeset for help on using the changeset viewer.