diff options
-rwxr-xr-x | scripts/feeds | 54 |
1 files changed, 47 insertions, 7 deletions
diff --git a/scripts/feeds b/scripts/feeds index 7add029..9ab0d7e 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 <command> [options] Commands: + list [options]: List feeds and their content + Options: + -s : List of feed names and their URL. + -r <feedname>: List packages of specified feed. + install [options] <package>: Install a package Options: - -a installs all packages from all feeds or from the specified feed - -p <feedname>: Prefer this feed when installing packages - -d <y|m|n>: Set default for newly installed packages + -a : Install all packages from all feeds or from the specified feed using the -p option. + -p <feedname>: Prefer this feed when installing packages. + -d <y|m|n>: Set default for newly installed packages. search [options] <substring>: Search for a package Options: -r <feedname>: Only search in this feed uninstall -a|<package>: 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"; |