scripts/feeds: get rid of redundant feed cache copy

Signed-off-by: Felix Fietkau <nbd@openwrt.org>

SVN-Revision: 44779
This commit is contained in:
Felix Fietkau 2015-03-15 11:07:57 +00:00
parent 0efcb02c9d
commit b7ebb19b02

View file

@ -366,16 +366,14 @@ sub do_install_package($$) {
return 0; return 0;
} }
my %feed;
sub lookup_package($$) { sub lookup_package($$) {
my $feed = shift; my $feed = shift;
my $package = shift; my $package = shift;
foreach my $feed ($feed, @feeds) { foreach my $feed ($feed, @feeds) {
next unless $feed->[1]; next unless $feed->[1];
next unless $feed{$feed->[1]}; next unless $feed_cache{$feed->[1]};
$feed{$feed->[1]}->{$package} and return $feed; $feed_cache{$feed->[1]}->[0]->{$package} and return $feed;
} }
return; return;
} }
@ -404,9 +402,9 @@ sub install_package {
}; };
# switch to the metadata for the selected feed # switch to the metadata for the selected feed
get_feed($feed->[1]); my $cur = get_feed($feed->[1]);
my $pkg = $feed{$feed->[1]}->{$name} or return 1; my $pkg = $cur->{$name} or return 1;
$pkg->{name} or do { $pkg->{name} or do {
$installed{$name} and return 0; $installed{$name} and return 0;
# TODO: check if this is an alias package, maybe it's known by another name # TODO: check if this is an alias package, maybe it's known by another name
@ -488,8 +486,8 @@ sub install {
get_installed(); get_installed();
foreach my $f (@feeds) { foreach my $f (@feeds) {
# index all feeds # fetch all feeds
$feed{$f->[1]} = get_feed($f->[1]); get_feed($f->[1]);
# look up the preferred feed # look up the preferred feed
$opts{p} and $f->[1] eq $opts{p} and $feed = $f; $opts{p} and $f->[1] eq $opts{p} and $feed = $f;