Slight improvements to URL and email address parsing.
[sw-tools] / perl / sw.in
1 #! @PERL@
2 # -*-perl-*-
3 #
4 # $Id: sw.in,v 1.2 1999/07/30 20:24:02 mdw Exp $
5 #
6 # CGI interface for software installations
7 #
8 # (c) 1999 EBI
9 #
10
11 #----- Licensing notice -----------------------------------------------------
12 #
13 # This file is part of sw-tools.
14 #
15 # sw-tools is free software; you can redistribute it and/or modify
16 # it under the terms of the GNU General Public License as published by
17 # the Free Software Foundation; either version 2 of the License, or
18 # (at your option) any later version.
19 #
20 # sw-tools is distributed in the hope that it will be useful,
21 # but WITHOUT ANY WARRANTY; without even the implied warranty of
22 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
23 # GNU General Public License for more details.
24 #
25 # You should have received a copy of the GNU General Public License
26 # along with sw-tools; if not, write to the Free Software Foundation,
27 # Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
28
29 #----- Revision history -----------------------------------------------------
30 #
31 # $Log: sw.in,v $
32 # Revision 1.2 1999/07/30 20:24:02 mdw
33 # Fix titles for debugging actions.
34 #
35 # Revision 1.1 1999/07/30 18:46:38 mdw
36 # New CGI script for browsing installed software and documentation.
37 #
38
39 #----- Required packages ----------------------------------------------------
40
41 use lib qw(@pkgdatadir@);
42
43 use POSIX;
44 use IO;
45
46 use SWConfig;
47 use SW;
48 use SWCGI qw(:DEFAULT :debug);
49
50 #----- Get packages implementing various actions ----------------------------
51
52 BEGIN { %ACT = (); }
53 use SWList;
54 use SWDoc;
55 use SWMan;
56 use SWInfo;
57
58 #----- Some built-in debugging actions --------------------------------------
59
60 sub debug($\%) {
61 my ($what, $h) = @_;
62 SWCGI::header($what);
63 SWCGI::dumphash(%$h);
64 SWCGI::footer();
65 }
66
67 $ACT{"show-config"} = sub { debug("configuration", %C); };
68 $ACT{"show-environment"} = sub { debug("environment", %ENV); };
69 $ACT{"show-query"} = sub { debug("query", %Q); };
70
71 #----- Snarf arguments ------------------------------------------------------
72
73 $C{"edited-config-file"} eq "yes" or
74 barf("Config file $C{datadir}/sw.conf hasn't been edited.");
75
76 SWCGI::read();
77 $act = $Q{"act"} || "list";
78 if ($ACT{$act}) {
79 &{$ACT{$act}};
80 } else {
81 barf("unknown action `$act'");
82 }
83
84 #----- That's all, folks ----------------------------------------------------
85
86 exit;