correctly generate hosts which have rsync paths on different drives
authordpavlin <dpavlin@8392b6e1-25fa-0310-8288-cc32f8e212ea>
Fri, 27 Jan 2006 17:45:49 +0000 (17:45 +0000)
committerdpavlin <dpavlin@8392b6e1-25fa-0310-8288-cc32f8e212ea>
Fri, 27 Jan 2006 17:45:49 +0000 (17:45 +0000)
git-svn-id: svn+ssh://llin/home/dpavlin/private/svn/BackupPC/trunk@302 8392b6e1-25fa-0310-8288-cc32f8e212ea

xls2conf/xls2conf.pl

index e5084e3..ff12e93 100755 (executable)
@@ -11,7 +11,7 @@ my $oBook = Spreadsheet::ParseExcel::Workbook->Parse($xls_file);
 my %bpc_hosts;
 my %hosts;
 my %smb_share_name;
-my %rsync_share_name;
+my $rsync_share_name;
 
 foreach my $sheet (@{$oBook->{Worksheet}}) {
        if ($sheet->{Name} !~ m/(Instruments|sheet1)/i) {
@@ -42,10 +42,8 @@ foreach my $sheet (@{$oBook->{Worksheet}}) {
                my $drive = lc(substr($path,0,1));
 
                my $rsync_share;
-               if ($drive eq 'c') {
-                       $rsync_share = 'cDrive';
-               } elsif ($drive eq 'd') {
-                       $rsync_share = 'dDrive';
+               if ($drive eq 'c' || $drive eq 'd') {
+                       $rsync_share = $drive . 'Drive';
                } else {
                        die "unknown drive '$drive' from path '$path'";
                }
@@ -85,13 +83,21 @@ print O qq`
                        print "$ip\trsync://${share}::${path}\n";
 
                        $path =~ s/([ '])/\\$1/g;
-                       push @{$rsync_share_name{$conf_name}}, $path;
-
+                       push @{$rsync_share_name->{$conf_name}->{$rsync_share}}, $path;
+
+                       my @shares = sort keys %{$rsync_share_name->{$conf_name}};
+                       my $rsync_share_names = "'" . join("','", @shares) . "'";
+                       my @backup_files_only;
+                       foreach my $s (@shares) {
+                               foreach my $p (@{$rsync_share_name->{$conf_name}->{$s}}) {
+                                       push @backup_files_only, "'$s' => '$p'";
+                               }
+                       }
 print O qq`
 # $conf_name on $hostname $ip, $os
 \$Conf{XferMethod} = 'rsyncd';
-\$Conf{RsyncShareName} = [ '$rsync_share' ];
-\$Conf{BackupFilesOnly} = [ '$rsync_share' => '`, join("','$rsync_share' => '", @{$rsync_share_name{$conf_name}}), qq`' ];
+\$Conf{RsyncShareName} = [ $rsync_share_names ];
+\$Conf{BackupFilesOnly} = [ `, join(",", @backup_files_only), qq` ];
 `;
 
                }