/usr/share/perl5/Mojolicious/Plugin/Mount.pm is in libmojolicious-perl 2.23-1.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 | package Mojolicious::Plugin::Mount;
use Mojo::Base 'Mojolicious::Plugin';
use Mojo::Server;
sub register {
my ($self, $app, $conf) = @_;
# Extract host and path
my $prefix = (keys %$conf)[0];
my ($host, $path);
if ($prefix =~ m#^(\*\.)?([^/]+)(/.*)?$#) {
$host = quotemeta $2;
$host = "(?:.*\\.)?$host" if $1;
$path = defined $3 ? $3 : '/';
$host = qr/^$host$/i;
}
else { $path = $prefix }
# Generate route
my $route =
$app->routes->route($path)
->detour(app => Mojo::Server->new->load_app($conf->{$prefix}));
$route->over(host => $host) if $host;
return $route;
}
1;
__END__
=head1 NAME
Mojolicious::Plugin::Mount - Application mount plugin
=head1 SYNOPSIS
# Mojolicious
$self->plugin(Mount => {'/prefix' => '/home/sri/myapp.pl'});
# Mojolicious::Lite
plugin Mount => {'/prefix' => '/home/sri/myapp.pl'};
# Adjust the generated route
my $example = plugin Mount => {'/example' => '/home/sri/example.pl'};
$example->to(message => 'It works great!');
# Mount application with host
plugin Mount => {'mojolicio.us' => '/home/sri/myapp.pl'};
# Host and path
plugin Mount => {'mojolicio.us/myapp' => '/home/sri/myapp.pl'};
# Or even hosts with wildcard subdomains
plugin Mount => {'*.mojolicio.us/myapp' => '/home/sri/myapp.pl'};
=head1 DESCRIPTION
L<Mojolicious::Plugin::Mount> is a plugin that allows you to mount whole
L<Mojolicious> applications.
Note that this module is EXPERIMENTAL and might change without warning!
=head1 METHODS
L<Mojolicious::Plugin::Mount> inherits all methods from
L<Mojolicious::Plugin> and implements the following new ones.
=head2 C<register>
$plugin->register;
Mount L<Mojolicious> application.
=head1 SEE ALSO
L<Mojolicious>, L<Mojolicious::Guides>, L<http://mojolicio.us>.
=cut
|