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

# User Rev Content
1 tdb 1.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 tdb 1.2 my ($doc) = ($query->param('doc') =~ /^\s*(.*?\.txt)\s*$/);
23     $doc = "../documentation/".$doc;
24 tdb 1.1
25 tdb 1.2 print "Content-type: text/html\n\n";
26 tdb 1.1
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 tdb 1.2 Last modified 02/11/2000
35 tdb 1.1 -->
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 tdb 1.2 &print_html($left);
54 tdb 1.1
55     print <<"END";
56    
57     </td>
58     <td valign="top">
59     END
60    
61 tdb 1.2 &print_html($title);
62 tdb 1.1 &print_file($doc);
63 tdb 1.2 &print_html($bottom);
64 tdb 1.1
65     print <<"END";
66    
67     </td>
68     </tr>
69     </table>
70    
71     </body>
72    
73     </html>
74     END
75    
76     exit 0;
77    
78 tdb 1.2 # Print a file, whilst escaping HTML: -
79 tdb 1.1 sub print_file ($) {
80 tdb 1.3 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 tdb 1.1 my ($filename) = @_;
95     open(FILE, $filename) or die "Cannot open $filename: $!\n";
96 tdb 1.2 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 tdb 1.3 s/\b($urls:[$any]+?)(?=[$punc]*[^$any]|$)/<a href="$1">$1<\/a>/igox;
105 tdb 1.2 print;
106 tdb 1.1 }
107 tdb 1.2 print "</pre>";
108 tdb 1.1 }
109    
110 tdb 1.2 # Print a file without escaping HTML: -
111     sub print_html ($) {
112     my ($filename) = @_;
113     print `cat $filename`;
114     }