-for ( my $i = 2 ; $i < @ARGV ; $i++ ) {
- my ($host,$num) = split(/:/,$ARGV[$i],2);
- if ( !defined($Hosts->{$host}) ) {
- print(STDERR "$0: host $host doesn't exist... quitting\n");
- exit(1);
- }
- my @backups = $bpc->BackupInfoRead($host);
- if ( !@backups ) {
- print(STDERR "$0: host $host doesn't have any backups... quitting\n");
- exit(1);
- }
- push(@HostList, $host);
- $num ||= $backups[$#backups]{num};
- push(@BackupList, $num);
+
+
+my $host_nums;
+
+foreach my $host ( keys %$Hosts ) {
+ $host = lc $host;
+ my @backups = $bpc->BackupInfoRead($host);
+ if ( !@backups ) {
+ warn "$0: host $host doesn't have any backups... skipping\n";
+ next;
+ }
+ $host_nums->{$host} = [ BackupPC::Search::host_backup_nums( $host ) ];
+}
+
+foreach ( @HostFilter ) {
+ my ($host,$num) = split(/:/,$_,2);
+ if ( !defined($Hosts->{$host}) ) {
+ print(STDERR "$0: host $host doesn't exist... quitting\n");
+ exit(1);
+ }
+ if ( defined $num ) {
+ warn "+ $host $num\n";
+ push(@HostList, $host);
+ push(@BackupList, $num);
+ } else {
+ foreach my $num ( @{ $host_nums->{$host} } ) {
+ warn "+ $host $num\n";
+ push(@HostList, $host);
+ push(@BackupList, $num);
+ }
+ }