84 lines
3.0 KiB
Perl
84 lines
3.0 KiB
Perl
#!/usr/local/bin/perl -w
|
|
|
|
use strict;
|
|
use warnings;
|
|
use File::Find qw(finddepth);
|
|
use File::Slurp;
|
|
use Data::Printer;
|
|
use DBI;
|
|
|
|
my $db = "misc1"; # Datenbankparameter
|
|
my $user = "root"; # Datenbankuser
|
|
my $pass = "jagger"; # Datenbankpasswort
|
|
my $server = "ares"; # Datenbankserver
|
|
|
|
my $dbh = DBI->connect("DBI:mysql:$db:$server", $user, $pass)
|
|
#my $dbh = DBI->connect('DBI:mysql:prod:ares', 'root', 'jagger')
|
|
or die "Couldn't connect to database: " . DBI->errstr;
|
|
|
|
|
|
$dbh->do("update cfg_analyse_cfg set checked = ?", undef, 0);
|
|
my $prod = $dbh->selectcol_arrayref('SELECT cfg, lasttime from cfg_analyse_cfg',{ Columns=>[1,2] });
|
|
my %cfglast = @$prod;
|
|
|
|
# p $cfglast{"/{COMMON}Demontage.cfg"};
|
|
# exit;
|
|
my $typ = $dbh->selectcol_arrayref('SELECT name, tid from cfg_analyse_typ',{ Columns=>[1,2] });
|
|
my %typen = @$typ;
|
|
|
|
finddepth( sub {
|
|
return if($_ eq '.' || $_ eq '..');
|
|
if ( -f $File::Find::name ) {
|
|
my $inhalt = read_file( $File::Find::name );
|
|
$inhalt =~ s/\\\r\n/\\/g;
|
|
$inhalt =~ s/\\\n/\\/g;
|
|
chomp $inhalt;
|
|
my @spl = split(/\n/,$inhalt);
|
|
my $dname = $File::Find::name =~ s/\/home\/steffen\/prvcfg\/cpcfg\/trunk//r;
|
|
my $s1 = (stat($File::Find::name))[9];
|
|
my $s2 = $cfglast{"$dname"};
|
|
my @sap = $dname =~ /(_[0-9]{5}_|SAP[0-9]{5}_|_[0-9]{5}-|-[0-9]{5}_)/g;
|
|
my $s = $sap[0] || 0;
|
|
$s =~ s/\_//g;
|
|
$s =~ s/-//g;
|
|
$s =~ s/SAP//g;
|
|
|
|
if ( defined $s2 && $s1 eq $s2 ) {
|
|
$dbh->do("update cfg_analyse_cfg set sap = ?, checked = ? where cfg = ?", undef, $s || 0, 1, $dname);
|
|
print "aktuell - $dname\n";
|
|
} else {
|
|
print "veraltet - $dname\n";
|
|
$dbh->do("delete from cfg_analyse_cfg where cfg = ?", undef, $dname);
|
|
|
|
$dbh->do("INSERT into cfg_analyse_cfg ( cfg, lasttime, sap, checked ) VALUES (?,?,?,?)", undef, $dname, $s1, $s || 0, 1);
|
|
my $cfgid = $dbh->{'mysql_insertid'};
|
|
|
|
for my $z ( @spl ) {
|
|
|
|
if ( $z !~ m/#/ ) {
|
|
if ($z =~ / =/ ) {
|
|
$z =~ s/ //g;
|
|
$z = lc $z;
|
|
my @spl2 = split(/=/, $z);
|
|
my $j = join ('=', @spl2[1..@spl2-1]);
|
|
$j =~ s/\\/\\\n/g;
|
|
|
|
if ( !$typen{$spl2[0]} ) {
|
|
$dbh->do("REPLACE into cfg_analyse_typ ( name ) VALUES ( ?)", undef, $spl2[0]);
|
|
$typen{$spl2[0]} = $dbh->{'mysql_insertid'};
|
|
$dbh->do("INSERT into cfg_analyse_value ( cid, tid, val ) VALUES (?,?,?)", undef, $cfgid ,$typen{$spl2[0]}, $j );
|
|
} else {
|
|
$dbh->do("INSERT into cfg_analyse_value ( cid, tid, val ) VALUES (?,?,?)", undef, $cfgid ,$typen{$spl2[0]}, $j );
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}, '/home/steffen/prvcfg/cpcfg/trunk/');
|
|
|
|
$dbh->do("delete from cfg_analyse_cfg where checked = ?", undef, 0);
|
|
$dbh->disconnect;
|
|
|
|
print "fertig\n";
|