# Compare_DIRs.pl
#
# Auswertung des Outputs des WIN-Prgs compare.exe durch 
#    Umwandlung des Outputs in csv-Datenbank-Datei

# Aufruf mit Param: 
# (Param = Name der Output-Datei, in die Output von compare.exe geschrieben wurde,
#    zu uebertragen mit copy / paste )
#    z.B. perl -w compare_DIRs.pl my_output.txt)
# schreibt csv-Datei nach $out
# kann dann z.B. mit OOffice entsprechend sortiert werden
# alles, was nicht passt, landet in $rest

# noch zu testen:
# ob weitere Standard-Meldungen von compare.exe geschrieben werden (s. $rest)


# 070414
#
# (C)opyright by Gerd Hoffmann


use strict;

my ($out, $rest, $line) ;

$out = "compare_DIRs.csv";
$rest = "rest.txt";
open (OUT,">$out" ) or die "Cannot open $out\n";
open (REST,">$rest" ) or die "Cannot open $rest\n";
while (<>) {
   chomp;
   $line = $_;
   if( $line =~ /\\RECYCLED/i || 
       $line =~ /\\System Volume Information/i ||
       $line =~ /\\fi\.[tb]/i ||
       $line =~ /\\StdSoft/i ||
       $line =~ /\\HD-Service/i )
       { next ; }
   elsif( $line =~ /^(Size Mismatch): (.*)$/) {
      print OUT "\"$1\",\"$2\"\n";
   }
   elsif( $line =~ /^(Failed Open Target): (.*)$/) {
      print OUT "\"$1\",\"$2\"\n";
   }
   elsif( $line =~ /^(Size Mismatch): (.*)$/) {
      print OUT "\"$1\",\"$2\"\n";
   }
   elsif( $line =~ /^(Failed Open Source): (.*)$/) {
      print OUT "\"$1\",\"$2\"\n";
   }
   elsif( $line =~ /^(Data Mismatch): (.*)$/) {
      print OUT "\"$1\",\"$2\"\n";
   }
   else {
      print REST "$line\n";
   }
}
close OUT;
close REST;

