]> i-scream Git - www.i-scream.org.git/blob - cgi-bin/docs.cgi
Paul made the printing function better, so we can use tags in our documents.
[www.i-scream.org.git] / cgi-bin / docs.cgi
1 #!/usr/bin/perl -w
2
3 #------------------------------------------------------------
4 # docs.cgi
5
6 # Web-based text file viewer.
7 # Copyright Paul Mutton, 2000.
8 #------------------------------------------------------------
9
10 use strict;
11 use CGI;
12
13 $| = 1;
14
15 # Settings
16 my ($left) = "../left.inc" ;
17 my ($title) = "../title.inc";
18 my ($bottom) = "../bottom.inc";
19
20
21 my ($query) = new CGI;
22 my ($doc) = ($query->param('doc') =~ /^\s*(.*?\.txt)\s*$/);
23 $doc = "../documentation/".$doc;
24
25 print "Content-type: text/html\n\n";
26
27 print <<"END";
28 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
29
30 <!--
31     docs.cgi
32     Web-based text file viewer and formatter.
33     Created by pjm2 19/10/2000
34     Last modified 02/11/2000
35 -->
36
37 <html>
38
39 <head>
40  <title>The i-scream Project Documentation Viewer</title>
41  <meta name="description" content="The i-scream Project is a central monitoring system for Unix, Linux and NT servers.">
42  <meta name="keywords" content="i-scream, project, central monitoring system, unix, linux, nt, server, alert">
43  <meta name="generator" content="notepad on acid, aye.">
44 </head>
45
46 <body bgcolor="#ffffff" link="#0000ff" alink="#3333cc" vlink="#3333cc" text="#000066">
47
48 <table border="0" cellpadding="2" cellspacing="2">
49  <tr>
50   <td valign="top">
51 END
52
53 &print_html($left);
54
55 print <<"END";
56
57   </td>
58   <td valign="top">
59 END
60
61 &print_html($title);
62 &print_file($doc);
63 &print_html($bottom);
64
65 print <<"END";
66
67   </td>
68  </tr>
69 </table>
70
71 </body>
72
73 </html>
74 END
75
76 exit 0;
77
78 # Print a file, whilst escaping HTML: -
79 sub print_file ($) {
80     my ($filename) = @_;
81     open(FILE, $filename) or die "Cannot open $filename: $!\n";
82     print "<pre>\n";
83     # Use $_ implicitly throughout.
84     while (<FILE>) {
85         # Must do the next line first!
86         s/&/&amp;/g;
87         s/</&lt;/g;
88         s/>/&gt;/g;
89         s/"/&quot;/g;
90         print;
91     }
92     print "</pre>";
93 }
94
95 # Print a file without escaping HTML: -
96 sub print_html ($) {
97     my ($filename) = @_;
98     print `cat $filename`;
99 }