+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;
+}
+