package gdbdiff; BEGIN { die "GSDLHOME not set\n" unless defined $ENV{'GSDLHOME'}; die "GSDLOS not set\n" unless defined $ENV{'GSDLOS'}; unshift (@INC, "$ENV{'GSDLHOME'}/perllib"); unshift (@INC, "$ENV{'GSDLHOME'}/perllib/cpan"); } use util; use diffutil; use Text::Diff; sub readin_gdb { my ($cmd) = @_; open(PIN,"$cmd|") || die "Unable to open pipe to $cmd: $!\n"; my $text_content = ""; while (defined (my $line = )) { $text_content .= $line; } close(PIN); return $text_content; } sub test_gdb { my ($full_modeldb, $full_testdb) = @_; # print "Now is testing database\n"; my $model_cmd = "db2txt $full_modeldb 2>&1"; my $test_cmd = "db2txt $full_testdb 2>&1"; my $model_text = readin_gdb($model_cmd); my $test_text = readin_gdb($test_cmd); my $report_type = "OldStyle"; # Can not change this type. my $diff_gdb = diff \$model_text, \$test_text, { STYLE => $report_type }; $diff_gdb = &diffutil::GenerateOutput($diff_gdb,"^<(lastmodified|lastmodifieddate|oailastmodified|oailastmodifieddate)>.*"); if($diff_gdb eq "") { return ""; } else { return "Difference Report: Differences found in the Database file: \n$diff_gdb"; } # Call diff? } 1;