#!/usr/bin/perl -w

use strict;
use Test::Repocop::Options;
use Test::Repocop::TestDB;
use Test::Repocop::Metadata;
#use Test::Repocop::ALTLinuxACL;

$Repocop::arg::reportlevel='skip';
my $branch='sisyphus';
&Test::Repocop::Options::get_common_options(
    'b|branch=s' => \$branch,
);
&Test::Repocop::Options::die_if_nothing_to_report();
my $branch_id=1;
$branch_id=4 if $branch and $branch eq 't6';
my $sqlprefix='INSERT INTO repocops (name, version, release, arch, srcname, srcversion, srcrel, testname, status, message) VALUES (';
$sqlprefix='INSERT INTO repocops (branch_id, name, version, release, arch, srcname, srcversion, srcrel, testname, status, message) VALUES ('."'$branch_id',";

my $aclmap;
#$aclmap=Test::Repocop::ALTLinuxACL->new($Repocop::arg::aclfile) if $Repocop::arg::aclfile;
my $metadata=Test::Repocop::Metadata->new();
my $testdb=Test::Repocop::TestDB->new();
my $cache=$testdb->get_pkg_test_status_result_iterator();
while (my ($rpm,$test,$status,$result)=$cache->iterate4_filtered()) {
    # linearize
    $result=~s/\n/; /gs;
    my $srpm=$metadata->sourceid($rpm);
    my $packager=$metadata->nick($rpm);
    my $name=$metadata->name($rpm);
    my $version=$metadata->version($rpm);
    my $release=$metadata->release($rpm);
    my $arch=$metadata->arch($rpm);
    my $srcname=$metadata->name($srpm);
    my $srcversion=$metadata->version($srpm);
    my $srcrelease=$metadata->release($srpm);
    #print "$name|||$version|||$release|||$arch|||$srcname|||$srcversion|||$srcrelease|||$test|||$status|||$result\n";
    my $pre="$name|||$version|||$release|||$arch|||$srcname|||$srcversion|||$srcrelease|||$test|||$status";
    $pre=~s/'/''/g;
    $pre=~s/\|\|\|/','/g;
    $result=~s/'/''/g;
    $result=~s/\\/\\\\/g;
    $result=~s/\r/\\r/g;
    $result=~s/\n/\\n/g;
    print $sqlprefix,"'$pre',E'$result');\n";
}

#print STDERR "done.\n" if $verbose;

=head1	NAME

repocop-report-heroku - a tool that creates repocop reports for sisyphus.heroku.com.

=head1	SYNOPSIS

see repocop-report-txt

=head1	DESCRIPTION

B<repocop-report-heroku> processes results of repocop unit tests, created with 
repocop-run command, stored in <cachedir> and creates results in txt form.
Presize subset of tests can be selected using B<--include>
and B<--exclude> options.

=head1	OPTIONS

see repocop-report-txt

=head1	AUTHOR

Written by Igor Vlasenko <viy@altlinux.org>.

=head1	ACKNOWLEGEMENTS

To Alexey Torbin <at@altlinux.org>, whose qa-robot package
had a strong influence on repocop. 

=head1	COPYING

Copyright (c) 2008 Igor Vlasenko, ALT Linux Team.

This is free software; you can redistribute it and/or modify it under the terms
of the GNU General Public License as published by the Free Software Foundation;
either version 2 of the License, or (at your option) any later version.

=cut

