#!/usr/bin/perl -w

use strict;
use warnings;
use DBI;
use POSIX;
use RPM::Header;
die if POSIX::setlocale( POSIX::LC_ALL, 'C' ) ne 'C';

my $dbh;
my $sth_insert_src;
my $sth_insert_pkg;
my $pkgkey=$ENV{'REPOCOP_PKG_KEY'};
my $rhref=new RPM::Header $ENV{'REPOCOP_PKG'};
&connect();
my $summary=$rhref->{'SUMMARY'};
$summary=~s/^\s*//;
$summary=~s/\s*$//;
if (substr($pkgkey,-4) eq '.src') {
    $sth_insert_src->execute($pkgkey,$summary,$rhref->{'DESCRIPTION'});
} else {
    $sth_insert_pkg->execute($pkgkey,$summary,$rhref->{'DESCRIPTION'});
}
&disconnect();

sub connect {
    my $dbfile=$ENV{'REPOCOP_TEST_DB'};
    die "database is not initialized properly!" unless $dbfile;
    $dbh = DBI->connect("dbi:SQLite:dbname=$dbfile","","", {
	PrintError => 1,
	AutoCommit => 0,
			}) or die $dbh->errstr;
    $sth_insert_src=$dbh->prepare('INSERT INTO SRCRPM_SUMMARY_DESCRIPTION VALUES(?,?,?)') or die $dbh->errstr;
    $sth_insert_pkg=$dbh->prepare('INSERT INTO RPM_SUMMARY_DESCRIPTION VALUES(?,?,?)') or die $dbh->errstr;
}

sub disconnect {
    $dbh->commit;
    $sth_insert_src->finish;
    $sth_insert_pkg->finish;
    # hack around closing dbh with active statement handles bug
    #local $SIG{'__WARN__'} = sub {};
    $dbh->disconnect;
}
