From: Ralph Hempel Date: Wed, 30 Jan 2008 09:22:05 +0000 (+0000) Subject: - added package list function -r list packages of specified feed -s list the feed... X-Git-Tag: reboot~27134 X-Git-Url: https://git.librecmc.org/?a=commitdiff_plain;h=2dd0677c86aecb25538d4511f85155fabc3cbeb3;p=oweals%2Fopenwrt.git - added package list function -r list packages of specified feed -s list the feed names only and their URL - refresh of usage text -d-This line, and those below, will be ignored-- M feeds SVN-Revision: 10322 --- diff --git a/scripts/feeds b/scripts/feeds index 7add0291e6..9ab0d7e6df 100755 --- a/scripts/feeds +++ b/scripts/feeds @@ -142,7 +142,6 @@ sub search_feed { return 0; } - sub search { my %opts; @@ -152,6 +151,40 @@ sub search { } } +sub list_feed { + my $feed = shift; + + get_feed($feed); + foreach my $name (sort { lc($a) cmp lc($b) } keys %package) { + my $pkg = $package{$name}; + if($pkg->{name}) { + printf "\%-32s\t\%s\n", $pkg->{name}, $pkg->{title}; + } + } + + return 0; +} + +sub list { + my %opts; + + getopts('r:sh', \%opts); + if ($opts{h}) { + usage(); + return 0; + } + if ($opts{s}) { + foreach my $feed (@feeds) { + printf "\%-32s\tURL: %s\n", $feed->[1], $feed->[2]; + } + return 0; + } + foreach my $feed (@feeds) { + list_feed($feed->[1], @ARGV) if (!defined($opts{r}) or $opts{r} eq $feed->[1]); + } + return 0; +} + sub install_generic() { my $feed = shift; my $pkg = shift; @@ -332,21 +365,27 @@ sub usage() { Usage: $0 [options] Commands: + list [options]: List feeds and their content + Options: + -s : List of feed names and their URL. + -r : List packages of specified feed. + install [options] : Install a package Options: - -a installs all packages from all feeds or from the specified feed - -p : Prefer this feed when installing packages - -d : Set default for newly installed packages + -a : Install all packages from all feeds or from the specified feed using the -p option. + -p : Prefer this feed when installing packages. + -d : Set default for newly installed packages. search [options] : Search for a package Options: -r : Only search in this feed uninstall -a|: Uninstall a package - -a uninstalls all packages + -a : Uninstalls all packages. + + update: Update packages and lists of feeds in feeds.conf . - update: Update packages and lists of feeds in feeds.list - clean: Remove downloaded/generated files + clean: Remove downloaded/generated files. EOF exit(1); @@ -360,6 +399,7 @@ my %update_method = ( ); my %commands = ( + 'list' => \&list, 'update' => sub { -d "feeds" or do { mkdir "feeds" or die "Unable to create the feeds directory";