#!/usr/local/bin/perl -w

# libstatgrab
# https://libstatgrab.org
# Copyright (C) 2003-2004 Peter Saunders
# Copyright (C) 2003-2019 Tim Bishop
# Copyright (C) 2003-2013 Adam Sampson
# Copyright (C) 2012-2019 Jens Rehsack
# 
# This program 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; if not, write to the Free Software
# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
# 02110-1301, USA.

use strict;
use Getopt::Long;

my $progname = "statgrab-make-mrtg-config";

my $package_version = '0.92';
my $package_bugreport = 'https://libstatgrab.org/issues';
my $help_text = <<EOF;
Usage: $progname [OPTION]... [CONFIGFILE]...
Generate an XHTML index page on stdout from MRTG config files specified
on the command line or read from stdin.

--title TITLE                Use TITLE as the title of the generated page
--help                       Display this help and exit

Version $package_version - report bugs to $package_bugreport.
EOF

sub main () {
	my $hostname = `hostname`;
	chomp $hostname;
	my $pagetitle = "MRTG: $hostname";

	GetOptions('title=s' => \$pagetitle,
	           'help' => \my $help) or die $help_text;
	if ($help) {
		print "$help_text";
		exit 0;
	}

	my %pages = ();
	while (<>) {
		/^Title\[([^\]]+)\]: (.*)$/ or next;
		$pages{$2} = $1;
	}
	print <<EOF;
<?xml version="1.0" encoding="ISO-8859-1"?>
<!DOCTYPE html
    PUBLIC "-//W3C//DTD XHTML 1.1//EN"
    "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">
<head>
    <title>$pagetitle</title>
</head>
<body>
<h1>$pagetitle</h1>
EOF
	foreach my $title (sort keys %pages) {
		my $page = $pages{$title};
		print "<h2><a href=\"$page.html\">$title</a></h2>\n";
		print "<p><img src=\"$page-day.png\" alt=\"$page\" /></p>\n";
	}
	print <<EOF;
<p>Generated by <a href="https://libstatgrab.org">
libstatgrab</a> version $package_version.</p>
</body>
</html>
EOF
}

main();
