scripts/feeds: get rid of redundant feed cache copy
authorFelix Fietkau <nbd@openwrt.org>
Sun, 15 Mar 2015 11:07:57 +0000 (11:07 +0000)
committerFelix Fietkau <nbd@openwrt.org>
Sun, 15 Mar 2015 11:07:57 +0000 (11:07 +0000)
Signed-off-by: Felix Fietkau <nbd@openwrt.org>
SVN-Revision: 44779

scripts/feeds

index 6e30b5a..a1795e1 100755 (executable)
@@ -366,16 +366,14 @@ sub do_install_package($$) {
        return 0;
 }
 
-my %feed;
-
 sub lookup_package($$) {
        my $feed = shift;
        my $package = shift;
 
        foreach my $feed ($feed, @feeds) {
                next unless $feed->[1];
-               next unless $feed{$feed->[1]};
-               $feed{$feed->[1]}->{$package} and return $feed;
+               next unless $feed_cache{$feed->[1]};
+               $feed_cache{$feed->[1]}->[0]->{$package} and return $feed;
        }
        return;
 }
@@ -404,9 +402,9 @@ sub install_package {
        };
 
        # 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 {
                $installed{$name} and return 0;
                # TODO: check if this is an alias package, maybe it's known by another name
@@ -488,8 +486,8 @@ sub install {
        get_installed();
 
        foreach my $f (@feeds) {
-               # index all feeds
-               $feed{$f->[1]} = get_feed($f->[1]);
+               # fetch all feeds
+               get_feed($f->[1]);
 
                # look up the preferred feed
                $opts{p} and $f->[1] eq $opts{p} and $feed = $f;