diff options
Diffstat (limited to 'local/mib2c.genhtml.conf')
-rw-r--r-- | local/mib2c.genhtml.conf | 370 |
1 files changed, 370 insertions, 0 deletions
diff --git a/local/mib2c.genhtml.conf b/local/mib2c.genhtml.conf new file mode 100644 index 0000000..b0f6284 --- /dev/null +++ b/local/mib2c.genhtml.conf @@ -0,0 +1,370 @@ +## +## USAGE: +## mib2c -c mib2c.genhtml.conf STARTINGNODE +## +## Optional extra arguments: +## +## -S cssfile=file.css (specifies an alternate CSS style +## file to include in the output) +## +## +## try to strip leading white space from text +## +@define DO_FORMATED_TEXT@ +@startperl@ + my ($s) = ($vars{'x'} =~ /\n(\s+)/); + $vars{'x'} =~ s/^$s//gm; + 0; +@endperl@ +<pre> +$x +</pre> +@enddefine@ +## +## print a description clause (include TC info and references +## +@define DO_DESCR@ +<td> +@if "$i.perltype" ne "$i.syntax"@ +<p> +@eval $tmpsyn = "$i.syntax"@ +@perleval if (!defined($TCS{$vars{'tmpsyn'}})) { $TCS{$vars{'tmpsyn'}} = $vars{'i'}; }; 0;@ +Note: this object is based on the <a href="#$i.syntax"> $i.syntax TEXTUAL-CONVENTION</a>. +</p> +@end@ +@eval $x = "$i.description"@ +@calldefine DO_FORMATED_TEXT@ +##@startperl@ +## my ($s) = ($vars{'x'} =~ /\n(\s+)/); +## $vars{'x'} =~ s/^$s//gm; +## 0; +##@endperl@ +##<pre> +##$x +##</pre> +@if "$i.reference" ne ""@ +@eval $x = "$i.reference"@ +<p><i>Also see Reference: +@calldefine DO_FORMATED_TEXT@ +</i></p> +@end@ +</td> +@enddefine@ +## +## print information (a row) about a given node +## +@define NODE_INFO@ +@if ("$i.status" eq "Current")@ + <td> +@else@ + <td class="deprecated"> +@end@ +<a name="$i" /> +@eval $tmpi = "$i.parent"@ +@if "$doindexstuff" ne "" && "$tmpi.parent" ne "$t"@ +(external from $tmpi.parent) +@else@ +$i.subid +@end@ +<br /><b>$i</b> + +</td><td> +## +## print the data type +## +@if ("$i.status" ne "Current")@ +<font color="red">DEPRECATED</font><br /> +@end@ + $i.perltype +## +## print range information +## + @if "$i.ranges"@ + @if "$i.perltype" eq 'OCTETSTR' || "$i.perltype" eq 'OBJECTID'@ + <br />Legal Lengths: + @else@ + <br />Legal values: + @end@ + @eval $tmpdidit = 0@ + @foreach $st $end range $i@ + @if "$tmpdidit" == "1"@ + , + @end@ + @if "$st" eq "$end"@ + $st + @else@ + $st .. $end + @end@ + @eval $tmpdidit = 1@ + @end@ + @end@ +## +## check for TC vs non-TC cases +## + @if "$i.perltype" ne "$i.syntax"@ + <br> + @eval $tmpsyn = "$i.syntax"@ + @perleval if (!defined($TCS{$vars{'tmpsyn'}})) { $TCS{$vars{'tmpsyn'}} = $vars{'i'}; }; 0;@ + <a href="#$i.syntax">$i.syntax</a> + @if $i.enums@ + <br>(ENUM list below) + @end@ + @else@ + @if $i.enums@ + <table class="enum"> + <tr><th>Value</th><th>Label/Meaning</th></tr> + @foreach $e $v enum@ + <tr><td>$v</td><td>$e</td></tr> + @end@ + </table> + @end@ + @end@ + + </td><td>$i.access</td> + @if !"$dont_do_oids"@ + <td>$i.objectID</td> + @end@ + @calldefine DO_DESCR@ +@enddefine@ +@open ${name}.html@ +<head> + <title>MIB information for $name</title> +<style type="text/css"> +@if "$cssfile" ne ""@ +@startperl@ +open(CSS,$vars{'cssfile'}); +while(<CSS>) { + mib2c_output($_); +} +close(CSS); +0; +@endperl@ +@else@ +<!-- +h2{background:#bbeebb} +h3{background:#ccccee} +table { + border: 1px; + background: #dddddd; + style: outset; +} +th { + border: 1px; + border: solid; + border-style: outset; + background: #bbbbbb; +} +td { + border: 1px; + border: solid; + border-style: inset; +} +table.enums { + background: #cccccc; +} +table.deprecated { + background: #ffdddd; +} +td.deprecated { + background: #ffdddd; +} +.label { + border-style: outset; + background: #bbbbbb; +} +--> +@end@ +</style> +</head> +<body bgcolor="#ffffff"> +<h2>INTRODUCTION</h2> +<ul> +<p> +This is a summary of information regarding objects below the <b>$name</b> +MIB object, which is defined within the <b>$name.module</b> MIB +document as <b>$name.objectID</b>. +</p> +</ul> +## +## Table of contents +## +<h2>TABLE OF CONTENTS</h2> +<ul> +@foreach $Current stuff Current Deprecated@ +<h3><a href="#objects_$Current">$Current Objects</a></h3> +<ul> +@if "$Current" eq "Current"@ +<li><a href="#scalar_current">Scalars</a></li> +@else@ +<li><a href="#scalar_notcurrent">Deprecated Scalars</a></li> +@end@ +@foreach $t table@ +@if ("$Current" eq "Current" && "$t.status" eq "Current") || ("$Current" ne "Current" && "$t.status" ne "Current")@ + <li><a href="#$t">$t</a></li> +@end@ +@end@ +</ul> +@end@ +<h3><a href="#notifications">Notifications</a></h3> +<h3><a href="#textconventions">Textual Conventions</a></h3> +<h3><a href="#treeview">Tree-based view</a></h3> +</ul> +## +## Start of definitions +## +@foreach $Current stuff Current Deprecated@ +<a name="objects_$Current" /> +@if "$Current" ne "Current"@ + @eval $namestring = "notcurrent"@ + <hr /> + <h1><font color="red">DEPRECATED OR OBSOLETE OR HISTORIC OBJECTS</font></h1> + <br> + <table class="deprecated"><tr><td> +@else@ + @eval $namestring = "current"@ +@end@ +<a name="scalar_$namestring" /> +<h2>SCALAR OBJECTS</h2> +<ul> +<table> +<tr><th>Name</th><th>Type</th><th>Access</th><th>OID</th><th>Description</th></tr> +@foreach $i scalar@ + @if ("$Current" eq "Current" && "$i.status" eq "Current") || ("$Current" ne "Current" && "$i.status" ne "Current")@ + <tr> + @calldefine NODE_INFO@ + </tr> + @end@ +@end@ +</table> +</ul> + +<h2>TABLE OBJECTS</h2> +@eval $dont_do_oids = 1@ +@foreach $t table@ +@if ("$Current" eq "Current" && "$t.status" eq "Current") || ("$Current" ne "Current" && "$t.status" ne "Current")@ +<a name="$t" /><h3>Table $t</h3> +<ul> + <table> + <tr><td class="label">Table Name</td><td>$t</td></tr> + <tr><td class="label">In MIB</td><td>$t.module</td></tr> + <tr><td class="label">Registered at OID</td><td>$t.objectID</td></tr> + <tr><td class="label">Table Description</td> +@eval $i ="$t"@ +@calldefine DO_DESCR@ +</tr> + @eval $tmpx = $t@ + @perleval $vars{'tmpx'} =~ s/Table/Entry/; 0;@ +@eval $i = "$tmpx"@ +<tr><td class="label"><a name="$tmpx" />Row Description</td> +@calldefine DO_DESCR@ +</tr> + </table> + + <h4>$t Indexes:</h4> + +<table> +<tr class="label"><th>Name</th><th>Type</th><th>Access</th><th>Description</th></tr> +@foreach $i index@ + <tr> + @calldefine NODE_INFO@ + </tr> +@end@ +</table> + + <h4>Other $t Columns:</h4> +<table> +<tr class="label"><th>Name</th><th>Type</th><th>Access</th><th>Description</th></tr> +@foreach $i nonindex@ + <tr> + @calldefine NODE_INFO@ + </tr> +@end@ +</table> +</ul> +@end@ +@end@ +@end@ + +<br> + </table> +<hr /> +<a name="notifications" /> +<h2>NOTIFICATIONS</h2> +<ul> +<p> +@foreach $i notifications@ +<a name="$i" /><h3>Notification: $i</h3> + + <table> + <tr><td class="label">Notification Name</td><td>$i</td></tr> + <tr><td class="label">In MIB</td><td>$i.module</td></tr> + <tr><td class="label">Registered at OID</td><td>$i.objectID</td></tr> + <tr><td class="label">Notification Description</td> +@calldefine DO_DESCR@ + </tr> + <tr> <td class="label">Mandatory<br />Objects</td><td> + <table> + @foreach $v varbinds@ + <tr><td><a href="#$v">$v</a></td></tr> + @end@ + </table></td></tr> + </table> +@end@ +</ul> + + +<br> +<hr /> +<a name="textconventions" /> +<h2>TEXTUAL CONVENTIONS</h2> +<ul> +<p> +These TEXTUAL-CONVENTIONS are used in other parts of the document +above. They are SNMP's way of defining a datatype that is used +repeatedly by other MIB objects. Any implementation implementing +objects that use one of these definitions must follow its DESCRIPTION +clause as well as the DESCRIPTION clause of the object itself. +</p> +@startperl@ +mib2c_output("<table>"); +mib2c_output("<tr class=\"label\"><th>Name</th><th>Type</th><th>Description</th></tr>\n"); +map { + my $desc = $SNMP::MIB{$TCS{$_}}{'TCDescription'}; + my ($s) = ($desc =~ /\n(\s+)/); + $desc =~ s/^$s//gm; + mib2c_output("<tr><td><a name=\"$_\">$_</td><td>"); + mib2c_output($SNMP::MIB{$TCS{$_}}{'type'}); + my @enumkeys = keys(%{$SNMP::MIB{$TCS{$_}}{'enums'}}); + if ($#enumkeys > -1) { + mib2c_output("<table class=\"enums\">"); + mib2c_output("<tr><th>Value</th><th>Label/Meaning</th></tr>"); + foreach $k (sort { $SNMP::MIB{$TCS{$_}}{'enums'}{$a} <=> + $SNMP::MIB{$TCS{$_}}{'enums'}{$b} } @enumkeys) { + mib2c_output("<tr><td>$SNMP::MIB{$TCS{$_}}{'enums'}{$k}</td><td>$k</td></tr>"); + } + mib2c_output("</table>"); + } + mib2c_output("</td><td><pre>$desc</pre></td></tr>\n"); +} keys(%TCS); +mib2c_output("</table>"); +0; +@endperl@ +</ul> + +<a name="treeview" /> +<h2>TREE VIEW</h2> +@eval $mod = "$name.module"@ +<p>Tree view generated by running: <b>snmptranslate -Tp $mod::$name</b></p> +<pre> +@startperl@ +open(TREE,"snmptranslate -Tp $vars{mod}::$vars{name}|"); +while(<TREE>) { + s/(\+-- .*\s)(\w+)(\(\d+\))$/$1<a href="#$2">$2<\/a>$3/; + s/\+--(\w+)/+--<a href="#$1">$1<\/a>/; + s/Textual Convention: (\w+)/Textual Convention: <a href="#$1">$1<\/a>/; + mib2c_output($_); +} +close(TREE); +return 0; +@endperl@ +</pre> |