ViewVC Help
View File | Revision Log | Show Annotations | Revision Graph | Root Listing
root/i-scream/web/cgi-bin/docs.cgi
Revision: 1.3
Committed: Thu Nov 9 22:03:56 2000 UTC (24 years ago) by tdb
Branch: MAIN
Changes since 1.2: +15 -0 lines
Log Message:
URL's are actually linked now... which is nice :-)

File Contents

# Content
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 ($urls) = '(' . join ('|', qw{
81 http
82 telnet
83 gopher
84 file
85 wais
86 ftp
87 } )
88 . ')';
89
90 my ($ltrs) = '\w';
91 my ($gunk) = '/#~:.?+=&%@!\-';
92 my ($punc) = '.:?\-';
93 my ($any) = "${ltrs}${gunk}${punc}";
94 my ($filename) = @_;
95 open(FILE, $filename) or die "Cannot open $filename: $!\n";
96 print "<pre>\n";
97 # Use $_ implicitly throughout.
98 while (<FILE>) {
99 # Must do the next line first!
100 s/&/&amp;/g;
101 s/</&lt;/g;
102 s/>/&gt;/g;
103 s/"/&quot;/g;
104 s/\b($urls:[$any]+?)(?=[$punc]*[^$any]|$)/<a href="$1">$1<\/a>/igox;
105 print;
106 }
107 print "</pre>";
108 }
109
110 # Print a file without escaping HTML: -
111 sub print_html ($) {
112 my ($filename) = @_;
113 print `cat $filename`;
114 }