diff options
| -rwxr-xr-x | scripts/feeds | 54 | 
1 files changed, 47 insertions, 7 deletions
| diff --git a/scripts/feeds b/scripts/feeds index 7add0291e..9ab0d7e6d 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"; | 
