From: Dobrica Pavlinusic Date: Sat, 29 Jan 2011 14:19:27 +0000 (+0100) Subject: correctly support all command-line handling X-Git-Url: http://git.rot13.org/?p=BackupPC.git;a=commitdiff_plain;h=50c9c2c571189eeac7eefdd5b8e536163d685757;hp=fd4ac832e393ec216f873254bb3477625cb38e93 correctly support all command-line handling --- diff --git a/bin/BackupPC_ASA_ArchiveStart b/bin/BackupPC_ASA_ArchiveStart index f9372fd..f91a60f 100755 --- a/bin/BackupPC_ASA_ArchiveStart +++ b/bin/BackupPC_ASA_ArchiveStart @@ -94,24 +94,17 @@ if ( !defined($Hosts->{$ArchiveHost}) ) { } $bpc->ConfigRead($ArchiveHost); -if ( ! @HostFilter ) { - @HostFilter = keys %$Hosts; -} +my(@HostList, @BackupList); -warn "archiving hosts ",dump(@HostFilter); -my(@HostList, @BackupList); -foreach ( @HostFilter ) { - my ($host,$num) = split(/:/,$_,2); - if ( !defined($Hosts->{$host}) ) { - print(STDERR "$0: host $host doesn't exist... quitting\n"); - exit(1); - } - my @backups = $bpc->BackupInfoRead($host); - if ( !@backups ) { - warn "$0: host $host doesn't have any backups... skipping\n"; - next; - } +my $host_nums; + +foreach my $host ( keys %$Hosts ) { + my @backups = $bpc->BackupInfoRead($host); + if ( !@backups ) { + warn "$0: host $host doesn't have any backups... skipping\n"; + next; + } my $all_backup_numbers; $all_backup_numbers->{ $_->{num} }++ foreach @backups; @@ -127,20 +120,47 @@ foreach ( @HostFilter ) { 0; } - warn "# $host all_backup_numbers = ",dump($all_backup_numbers) if $debug; + warn "# $host all_backup_numbers = ",dump($all_backup_numbers),"\n"; - my @backup_nums = + $host_nums->{$host} = [ sort grep { $all_backup_numbers->{$_} } - keys %$all_backup_numbers; + keys %$all_backup_numbers + ]; +} - foreach my $num ( @backup_nums ) { +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); + } } } +if ( ! @HostFilter ) { + foreach my $host ( keys %$host_nums ) { + foreach my $num ( @{ $host_nums->{$host} } ) { + warn "+ $host $num\n"; + push(@HostList, $host); + push(@BackupList, $num); + } + } +} + +warn "# HostList=",dump(@HostList),"\n"; +warn "# BackupList=",dump(@BackupList),"\n"; + $dbh->disconnect; my $ReqFileName;