#! /usr/bin/perl -w

use strict;

use lib '/usr/local/share/perl5';

use Locale::TextDomain 'lire';
use Lire::LrCommand;

my $prog = new Lire::LrCommand();
$prog->init();
$prog->add_output_format_options();
$prog->add_merging_options();
$prog->add_common_options();

$prog->set_usage( __( '[<options>] [<report_file> [<report_destination>]]' ) );
$prog->set_help( __( 'Formats the XML report <report_file> and save it in <report_destination>. If <report_file> is omitted, the XML report will be read from STDIN. If <report_destination> is omitted, it will be output on STDOUT. Additional reports can be merged before formatting the report by using the --template and --merge options.' ) );
$prog->parse_options();

my ( $report_file, $output_file ) = @ARGV;
$report_file = '-' unless defined $report_file;
$output_file = '-' unless defined $output_file;

$prog->check_output_format();
my $report = $prog->merge_reports( $report_file );
$prog->format_report( $report, $output_file );

exit(0);

# Local Variables:
# mode: cperl
# End:

__END__

=pod

=head1 NAME

lr_xml2report - Format a XML report to the appropriate output format

=head1 SYNOPSIS

B<lr_xml2report> B<[>I<options>B<]> B<[>I<report_file>B<]> B<[>I<output_file>B<]>

B<lr_xml2report> B<--version>

B<lr_xml2report> B<--help> B<[dlf-converters|output-formats|report-templates]>

=head1 OPTIONS

=over 4

=item B<--help> B<[>I<section>B<]>

If no argument is given, prints usage information and exits. Argument
can be one of the following:

=over 4

=item dlf-converters

Prints the list of available DLF converters and exits.

=item output-formats

Prints the list of available output formats and exits.

=item report-templates

Prints the list of available report templates and exits.

=back

=item B<--output-format> I<output format>

Selects the ouput format in which to generate the report. 

=item B<--template> I<name>

Uses the report configuration template named I<name> to merge the
reports. This option is required when using the B<--merge> option to
merge reports.

=item B<--merge> I<report_file>

Merge I<report_file> before formatting the report. This option can be
used multiple times to merge more than two reports.

=back

=head1 DESCRIPTION

B<lr_xml2report> converts the XML reports generated by Lire to various
output format.

The script could be run as e.g.

 lr_xml2report --output-format pdf --template print_default \
   --merge report.2.xml --merge report.1.xmlreport.3.xml > report.pdf

(in multiple XML input files mode) or as

run lr_xml2report --output-format txt report.xml report.txt

(in single XML input file mode).

=head1 SEE ALSO

lr_log2mail(1), lr_log2report(1), lr_xml2mail(1), lire(1), lire(7),
documentation in the Lire User Manual

=head1 AUTHORS

  Joost van Baal <joostvb@logreport.org>
  Francis J. Lacoste <flacoste@logreport.org>

=head1 VERSION

$Id: lr_xml2report.in,v 1.24 2006/07/23 13:16:33 vanbaal Exp $

=head1 COPYRIGHT

Copyright (C) 2000-2004 Stichting LogReport Foundation LogReport@LogReport.org

This program is part of Lire.

Lire 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.

This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
GNU General Public License for more details.

You should have received a copy of the GNU General Public License
along with this program (see COPYING); if not, check with
http://www.gnu.org/copyleft/gpl.html.

=cut
