5 .\" Man page for `sw' CGI script
10 .\"----- Licensing notice ---------------------------------------------------
12 .\" This file is part of sw-tools.
14 .\" sw-tools is free software; you can redistribute it and/or modify
15 .\" it under the terms of the GNU General Public License as published by
16 .\" the Free Software Foundation; either version 2 of the License, or
17 .\" (at your option) any later version.
19 .\" sw-tools is distributed in the hope that it will be useful,
20 .\" but WITHOUT ANY WARRANTY; without even the implied warranty of
21 .\" MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
22 .\" GNU General Public License for more details.
24 .\" You should have received a copy of the GNU General Public License
25 .\" along with sw-tools; if not, write to the Free Software Foundation,
26 .\" Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
28 .\"----- Style hacking ------------------------------------------------------
30 .de VS \" Start a sort-of verbatim block
36 .de VE \" Stop a sort-of verbatim block
44 . ds mw \fR[\f(BImdw\fR]
46 .el .ds mw \fR[\fBmdw\fR]
51 .\"----- Main manual text ---------------------------------------------------
53 .TH sw-cgi 1 "30 July 1999" sw-tools
56 .\"--------------------------------------------------------------------------
60 sw-cgi \- CGI script for browsing installed software and documentation
62 .\"--------------------------------------------------------------------------
66 .IB prefix /cgi-bin/sw
67 .RI [ key = value ]...
69 .\"--------------------------------------------------------------------------
75 CGI script provides users with a pleasant-ish interface for browsing the
76 list of locally installed software and its documentation.
78 The script picks up arguments from HTTP
82 requests, or from the command line (which is useful when debugging).
83 Given no arguments, it emits a table of installed software read from the
86 together with links to documentation.
88 The program assumes that any
90 has documentation stashed in
91 .IB prefix /doc/ package
92 in plain text format. You can require your installers to do this by
93 putting this code in a
96 .B "Command reference"
101 # --- Ensure the documentation file exists ---
103 if [ ! -r "$SW_PREFIX/doc/$SW_PACKAGE" ]; then
104 echo >&2 "no documentation file \`$SW_PREFIX/doc/$SW_PACKAGE'"
108 Links to these documentation files are put into the table
109 automatically. The script picks out likely-looking references to other
110 sources of information:
113 A reference of the form
115 is suspected of being a manual page; the script looks in the manual
116 directories to see if this is the case and if so inserts a hypertext
117 link to the manual page. This is the standard form for manual page
121 A reference of the form
123 is assumed to be a reference to the GNU Info manual called
125 and an appropriate link inserted. There isn't a standard form for Info
126 references in non-Info manuals, so I've invented one.
129 A URL which begins with one of
133 is spotted and turned into a link. Only these two work.
136 Something that looks like an email address is turned into a
140 Similar transformations are applied to manual pages when they're
143 .SS "Script arguments"
144 The behaviour of the script is determined by the value of the
146 key. Any of the following may be given:
149 Emit the list of packages in tabular form. This is the default if no
154 Format a textual documentation file. The name of the package whose
155 documentation is to be emitted is given as the value of the
160 Format a manual page, or emit a manual index. If no
162 key is given, an index of all manual pages in the software area is
165 is a manual page section (e.g.,
171 is not given then an index of that particular section is emitted. If
176 are supplied then the manual page whose name is given by the
178 key in the section given by the
180 key is formatted (using
182 and displayed. Manual page references, URLs and email addresses are
183 transformed into links in the output.
186 Format a GNU Info node. If the
188 key is given, its value names an Info manual to open; the default is
192 key is given, its value names a node within the manual; the default is
196 Emits a table showing the configuration settings which the script is
199 below. This is useful during debugging.
202 Displays the environment variables passed to the script by the Web
203 server. This is useful during debugging.
206 Displays the query string passed by the Web server, decomposed into keys
207 and values and decoded. This is useful during debugging.
212 CGI script needs some configuration before it can do its work properly.
213 Indeed, it will refuse to run until the configuration file has been
216 The configuration file is in
217 .IB prefix /share/sw.conf\fR.
218 The format is simple. A line may be empty, or a comment, in which case
219 it is ignored. Comments have
221 as their first non-whitespace character; blank lines contain only
222 whitespace. A line may also contain a configuration variable
223 assignment, of the form
229 may be anything you like; only certain keys make sense to the script.
231 Configuration keys currently used are:
234 The name of the package in which the script came. This is set
235 automatically and you should not change the value.
238 The version number of the package. This is set automatically and you
239 should not change the value.
241 .B edited-config-file
242 Must be assigned the value
244 If this is not the case the script will immediately report an error.
245 The default configuration file comes with a commented-out assignment to
249 The installation prefix where your software gets installed. You
250 shouldn't need to change this, although it's handy for debugging.
252 .BR index ", " doc " and " datadir
253 The name of the index file, documentation directory and shared data
254 directory respectively. The default values of these variables are set
255 automatically and you shouldn't need to change them.
258 Your email domain. Set this to the domain part for email addresses of
259 people at your site, and the script will generate correct links in its
262 .\"--------------------------------------------------------------------------
270 The \*(sw program, and this manual, are \*(mw productions, in association
271 with the European Bioinformatics Institute. They were written by Mark
272 Wooding <mdw@nsict.org>. Go and ask him if you have problems.
274 .\"----- That's all, folks --------------------------------------------------