move backend interface modules into PLP::Backend:: namespace
[perl/plp/.git] / plp.cgi
diff --git a/plp.cgi b/plp.cgi
index 85d82100b55441ddd7ff00fd5437413f1fc79172..58cb1d07fbe98dce22a9ce6b3dfecc96484df730 100755 (executable)
--- a/plp.cgi
+++ b/plp.cgi
@@ -1,87 +1,7 @@
-#!/usr/local/bin/perl
-use v5.6.0;
-use PLP;
+#!/usr/bin/env perl
 
-die 'Wrong module version' if $PLP::VERSION ne '3.01';
+# Executable to serve PLP scripts using CGI.
+# Not installed automatically, and only needed for CGI installations.
 
-use vars qw($DEBUG);
-
-use strict;
-{
-    $PLP::code = '';
-    $PLP::sentheaders = 0;
-    $PLP::inA = 0;
-    $PLP::inB = 0;
-}
-
-$DEBUG = 1;
-our $mod_perl = exists $ENV{MOD_PERL};
-
-{
-    my $file = $ENV{PATH_TRANSLATED};
-    $ENV{PLP_NAME} = $ENV{PATH_INFO};
-    my $path_info;
-    while (not -f $file) {
-        if (not $file =~ s/(\/+[^\/]*)$//) {
-           print STDERR "PLP: Not found: $ENV{PATH_TRANSLATED} ($ENV{REQUEST_URI})\n";
-
-           if ($mod_perl) {
-               Apache->request->uri($ENV{REQUEST_URI});
-               print STDOUT "Status: 404 Not Found";
-               Apache::exit();
-           } else {
-               PLP::error(undef, 404);
-               exit;
-           }
-       }
-       my $pi = $1;
-       $ENV{PLP_NAME} =~ s/\Q$pi\E$//;
-       $path_info = $pi . $path_info;
-    }
-    
-    if ($mod_perl) {
-       Apache->request->uri($ENV{REQUEST_URI});
-    }
-
-    if (not -r $file) {
-       print STDERR "PLP: Can't read: $ENV{PATH_TRANSLATED} ($ENV{REQUEST_URI})\n";
-       if (exists $ENV{MOD_PERL}) {
-           print STDOUT "Status: 403 Forbidden";
-           Apache::exit();
-       } else {
-           PLP::error(undef, 403);
-           exit;
-       }
-    }
-
-    delete @ENV{
-       qw(PATH_TRANSLATED SCRIPT_NAME SCRIPT_FILENAME PATH_INFO),
-        grep { /^REDIRECT_/ } keys %ENV
-    };
-
-    $ENV{PATH_INFO} = $path_info if defined $path_info;
-    $ENV{PLP_FILENAME} = $file;
-    (my $dir = $file) =~ s{/[^/]+$}[];
-    chdir $dir;
-
-    $PLP::code = PLP::source($file, 0);
-    tie *PLPOUT, 'PLP::Tie::Print';
-    select PLPOUT;
-}
-
-{
-    no strict;
-    PLP::Fields::doit();
-    {
-       package PLP::Script;
-       *headers = \%header;
-       *cookies = \%cookie;
-       PLP::Functions->import();
-       eval qq{package PLP::Script; $PLP::code};
-    }
-    PLP::error($@, 1) if $@;
-    select STDOUT;
-    undef *{"PLP::Script::$_"} for keys %PLP::Script::;
-    PLP::SendHeaders() unless $PLP::sentheaders;
-}
+use PLP::Backend::CGI;