package ExternalCatty;
use strict;
use warnings;
use Catalyst qw/-Engine=HTTP/;
our $VERSION = '0.01';
__PACKAGE__->config( name => 'ExternalCatty' );
__PACKAGE__->setup;
sub default : Private {
my ( $self, $c ) = @_;
$c->response->content_type('text/html; charset=utf-8');
$c->response->output( html( 'Root', 'Hello, test ☺!' ) );
}
sub html {
my ( $title, $body ) = @_;
return qq[
$title
$body
];
}
# The Cat HTTP server background option is useless here :-(
# Thus we have to provide our own background method.
sub background {
my $self = shift;
my $port = shift;
my $child = fork;
die "Can't fork Cat HTTP server: $!" unless defined $child;
return $child if $child;
if ( $^O !~ /MSWin32/ ) {
require POSIX;
POSIX::setsid() or die "Can't start a new session: $!";
}
$self->run($port);
}
1;