| Catalyst-Controller-WrapCGI documentation | view source | Contained in the Catalyst-Controller-WrapCGI distribution. |
Catalyst::Controller::CGIBin - Serve CGIs from root/cgi-bin
In your controller:
package MyApp::Controller::Foo;
use parent qw/Catalyst::Controller::CGIBin/;
In your .conf:
<Controller::Foo>
cgi_root_path cgi-bin
cgi_dir cgi-bin
cgi_chain_root /optional/private/path/to/Chained/root
cgi_file_pattern *.cgi
# or regex
cgi_file_pattern /\.pl\z/
<CGI>
username_field username # used for REMOTE_USER env var
pass_env PERL5LIB
pass_env PATH
pass_env /^MYAPP_/
</CGI>
</Controller::Foo>
Dispatches to CGI files in root/cgi-bin for /cgi-bin/ paths.
Unlike ModPerl::Registry this module does _NOT_ stat and recompile the CGI for every invocation. This may be supported in the future if there's interest.
CGI paths are converted into action names using cgi_action.
Inherits from Catalyst::Controller::WrapCGI, see the documentation for that module for other configuration information.
The global URI path prefix for CGIs, defaults to cgi-bin.
By default Path actions are created for CGIs, but if you specify this option, the actions will be created as Chained end-points, chaining off the specified private path.
If this option is used, the cgi_root_path option is ignored. The root path will be determined by your chain.
The PathPart of the action will be the path to the CGI file.
Path from which to read CGI files. Can be relative to $MYAPP_HOME/root or
absolute. Defaults to $MYAPP_HOME/root/cgi-bin.
By default all files in cgi_dir will be loaded as CGIs, however, with this option you can specify either a glob or a regex to match the names of files you want to be loaded.
Can be an array of globs/regexes as well.
$self->cgi_action($cgi)
Takes a path to a CGI from root/cgi-bin such as foo/bar.cgi and returns
the action name it is registered as.
$self->cgi_path($cgi)
Takes a path to a CGI from root/cgi-bin such as foo/bar.cgi and returns
the public path it should be registered under.
The default is to prefix with $cgi_root_path/, using the cgi_root_path
config setting, above.
$self->is_perl_cgi($path)
Tries to figure out whether the CGI is Perl or not.
If it's Perl, it will be inlined into a sub instead of being forked off, see wrap_perl_cgi.
$self->wrap_perl_cgi($path, $action_name)
Takes the path to a Perl CGI and returns a coderef suitable for passing to cgi_to_response (from Catalyst::Controller::WrapCGI) using CGI::Compile.
$action_name is the generated name for the action representing the CGI file
from cgi_action.
This is similar to how ModPerl::Registry works, but will only work for well-written CGIs. Otherwise, you may have to override this method to do something more involved (see ModPerl::PerlRun.)
Scripts with __DATA__ sections now work too, as well as scripts that call
exit().
$self->cgi_package($action_name)
Returns the package name a Perl CGI is compiled into for a given
$action_name.
$self->wrap_nonperl_cgi($path, $action_name)
Takes the path to a non-Perl CGI and returns a coderef for executing it.
$action_name is the generated name for the action representing the CGI file.
By default returns something like:
sub { system $path }
Catalyst::Controller::WrapCGI, CatalystX::GlobalContext, Catalyst::Controller, CGI, CGI::Compile, Catalyst
Please report any bugs or feature requests to bug-catalyst-controller-wrapcgi at
rt.cpan.org, or through the web interface at
http://rt.cpan.org/NoAuth/ReportBug.html?Queue=Catalyst-Controller-WrapCGI.
I will be notified, and then you'll automatically be notified of progress on
your bug as I make changes.
More information at:
http://rt.cpan.org/NoAuth/Bugs.html?Dist=Catalyst-Controller-WrapCGI
Copyright (c) 2008-2009 AUTHOR in Catalyst::Controller::WrapCGI and CONTRIBUTORS in Catalyst::Controller::WrapCGI.
This program is free software; you can redistribute it and/or modify it under the same terms as Perl itself.
| Catalyst-Controller-WrapCGI documentation | view source | Contained in the Catalyst-Controller-WrapCGI distribution. |