#!/usr/tardis/local/gnu/bin/perl5

# mrtgidx - generate html index page based on mrtg.cfg
#
# Syntax: mrtgidx <pathname-of-mrtg.cfg> 
#
# v0.1 1996-11 by Axel Dunkel (ad@Dunkel.de)
#

# --- start of configuration section ---

$include_inactive	= 1;	# include interfaces that are commented out

# --- eof of configuration section ---

if ($#ARGV < 0) {
  print "mrtgidx: generate HTML index page based on MRTG config file\n";
  print "\nUsage: mrtgidx <pathname-of-mrtg.cfg-file>\n";
  exit 2;
}

while ($line = <>) {
   chop $line;
   if ($line =~ /^(#*).*Title\[(\S+)\]:\s*([^:]*):\s*(.*)$/) {
	  $cmt 		= $1;
	  $itf		= $2;
	  $title	= $3;
	  $title_if = $4;
      if ($cmt ne "#" || $include_inactive) {
	    if ($itf =~ /(.*)\.([0-9]+)/) {
		  $router{$1,$2} = $title_if;
		  $router_f{$1,$2} = $itf;
		  $router_n{$1} = $title;
          $active{$1,$2} = $cmt;
	    } else {
		  print STDERR "Warning: can not interpret : $itf\n";
		}
      }
   } 
}

# print HTML header

print "<HTML><HEAD><TITLE>MRTG Index</TITLE></HEAD>\n";
print "<BODY>\n";
print "<H1>MRTG - Index</H1>\n";
print "<FONT SIZE=-2>generated by mrtgidx by <A HREF=\"mailto:ad\@dunkel.de\">Axel Dunkel</A></FONT>\n";
print "<UL>\n";

foreach $r (sort keys %router_n) {
  print "<P><LI><H2>$r</H2><UL>\n";
  foreach $i (0..200) {
    if (defined $router{$r,$i}) {
	  print "<LI>";
      if ($active{$r,$i} ne "#") { print "<A HREF=\"$router_f{$r,$i}.html\">"; }
	  print "$router{$r,$i}";
      if ($active{$r,$i} ne "#") { print "</a>\n"; }
    }
  }
  print "</UL>\n";
}

print "</UL></BODY></HTML>\n";

