1#!/usr/bin/env perl
2use strict;
3use warnings;
4
5use Text::Trac ();
6use Getopt::Long qw(GetOptions);
7use Path::Tiny qw(path);
8
9my ($infile, $outfile);
10my $url = '';
11my $class;
12my $span;
13my $id;
14my $force;
15
16GetOptions(
17	'infile=s'  => \$infile,
18	'outfile=s' => \$outfile,
19	'url=s'     => \$url,
20	'class'     => \$class,
21	'span'      => \$span,
22	'id'        => \$id,
23	'force'     => \$force,
24) or usage();
25usage() if not $infile or not $outfile;
26die "Infile '$infile' does not exist.\n" if not -e $infile;
27die "Outfile '$outfile' already exists.\n" if -e $outfile and not $force;
28
29main();
30exit;
31
32
33sub main {
34	my $parser = Text::Trac->new(
35		trac_url      => $url,
36		class         => $class,
37		span          => $span,
38		id            => $id,
39	#	disable_links => [ qw( changeset ticket ) ],
40	);
41	$parser->parse( path($infile)->slurp_utf8 );
42	path($outfile)->spew_utf8( $parser->html );
43}
44
45
46sub usage {
47	print <<"END_USAGE";
48Usage: $0
49    --infile filename     (File in Trac wiki format)
50    --outfile filename    (The html file to generate)
51
52    --url http://...      ()
53    --class               Include class="" in the HTML tags.
54	--span                Include <span></span>
55    --id                  Include id="" in the HTML tags.
56    --force               Overwrite exisiting html file.
57END_USAGE
58	exit;
59}
60
61