The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.
#!/usr/bin/env perl

use strict;
use warnings;
use Getopt::Long qw<:config autohelp no_ignore_case>;
use App::EvalServer;
use Pod::Usage;
use POE;

my %args;
GetOptions(
    'h|host=s'    => \$args{host},
    'p|port=s'    => \$args{port},
    'u|user=s'    => \$args{user},
    'U|unsafe'    => \$args{unsafe},
    't|timeout=i' => \$args{timeout},
    'l|limit=i'   => \$args{limit},
    'd|daemonize' => \$args{daemonize},
    'v|version'   => sub {
        no strict 'vars';
        my $version = defined $App::EvalServer::VERSION
            ? $App::EvalServer::VERSION
            : 'dev-git';
        print "Version $version\n";
        exit;
    },
) or pod2usage();

my $procname = 'evalserver';
$0 = $procname;
if ($] < 5.013000 && $^O eq 'linux') {
    local $@; 
    eval {
        require Sys::Prctl;
        Sys::Prctl::prctl_name($procname);
    };  
}

App::EvalServer->new(%args)->run();
$poe_kernel->run();

=encoding utf8

=head1 NAME

evalserver - The App::EvalServer launcher

=head1 SYNOPSIS

B<evalserver> [options]

 Options:
   -h FOO, --host FOO       Listen on host FOO (default: localhost)
   -p FOO, --port FOO       Listen on port FOO (default: 14400)
   -u FOO, --user FOO       Eval code as user FOO (default: nobody)
   -t FOO, --timeout FOO    Kill code after FOO seconds (default: 10)
   -l FOO, --limit FOO      Resource limit in megabytes (default: 50)
   -d, --daemonize          Run in the background
   -U, --unsafe             Don't chroot or set limits (no root needed)
   -v, --version            Print version
   -h, --help               Print this usage message

=head1 AUTHOR

Hinrik E<Ouml>rn SigurE<eth>sson, hinrik.sig@gmail.com

=head1 LICENSE AND COPYRIGHT

Copyright 2010 Hinrik E<Ouml>rn SigurE<eth>sson

This program is free software, you can redistribute it and/or modify
it under the same terms as Perl itself.

=cut